blob: 8722ecf2ecf8f0af0392ee24e962f422801fa4fd [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id$ */
package org.apache.fop.fonts;
import java.text.CharacterIterator;
/**
* Encapsulates a sub-sequence (fragement) of a text iterator (or other text source),
* where begin index and end index are indices into larger text iterator that denote
* [begin,end) of sub-sequence range. Additionally associated with a designated script
* (or "auto"), a designated language (or "none"), and a (single) bidi level (or -1
* if not known).
*/
public interface TextFragment {
/**
* Obtain reference to underlying iterator.
*/
CharacterIterator getIterator();
/**
* Obtain beginning index (inclusive) of sub-sequence of fragment in overall text source.
*/
int getBeginIndex();
/**
* Obtain ending index (exclusive) of sub-sequence of fragment in overall text source.
*/
int getEndIndex();
/**
* Obtain associated script (if designated) or "auto" if not.
*/
String getScript();
/**
* Obtain associated language (if designated) or "none" if not.
*/
String getLanguage();
/**
* Obtain associated bidi level (if known) or -1 if not.
*/
int getBidiLevel();
/**
* Obtain character at specified index within this fragment's sub-sequence,
* where index 0 corresponds to beginning index in overal text source, and
* subSequenceIndex must be less than ending index - beginning index.
*/
char charAt(int subSequenceIndex);
CharSequence subSequence(int startIndex, int endIndex);
}