diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-05 00:00:55 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-05 00:00:55 +0000 |
commit | 539418d42a4b63ab64a51ab11e808de7edbd4589 (patch) | |
tree | e84d2d5f42b8908733b2858f19c7f95e32335a86 /libjava/java/text/AttributedCharacterIterator.java | |
parent | 75e4cc424f1264b59585d32f320da6ff583ee32c (diff) | |
download | ppe42-gcc-539418d42a4b63ab64a51ab11e808de7edbd4589.tar.gz ppe42-gcc-539418d42a4b63ab64a51ab11e808de7edbd4589.zip |
* java/text/SimpleDateFormat.java: Re-merged with Classpath.
* gnu/gcj/text/LocaleData.java, gnu/gcj/text/LocaleData_en.java,
gnu/gcj/text/LocaleData_en_US.java: Removed.
* java/text/DateFormatSymbols.java (clone): Use Classpath
implementation.
(equals): Simplified.
(DateFormatSymbols): Look in gnu.java.locale for information.
(DateFormatSymbols(DateFormatSymbols)): Removed.
(safeGetResource): Removed.
(DateFormatSymbols): Throws MissingResourceException.
(ampmsDefault, erasDefault, localPatternCharsDefault,
monthsDefault, shortMonthsDefault, shortWeekdaysDefault,
weekdaysDefault, zoneStringsDefault): Removed.
* java/text/Collator.java (getAvailableLocales): Use modified
Classpath implementation.
(getInstance): Look in gnu.java.locale for information.
(clone): Rewrote.
* java/text/MessageFormat.java: Reindented.
(clone): Rewrote.
* java/text/FieldPosition.java: Merged with Classpath.
* java/text/ParsePosition.java: Merged with Classpath.
* java/text/Format.java: Merged with Classpath.
* java/text/StringCharacterIterator.java
(StringCharacterIterator(StringCharacterIterator,int,int)): New
constructor from Classpath.
* java/text/Annotation.java,
java/text/AttributedCharacterIterator.java,
java/text/AttributedString.java,
java/text/AttributedStringIterator.java: New from Classpath.
* java/text/CharacterIterator.java: Copied from Classpath.
* java/text/ChoiceFormat.java: Reindented.
(clone): Removed.
* gnu/java/text/BaseBreakIterator.java,
gnu/java/text/CharacterBreakIterator.java,
gnu/java/text/LineBreakIterator.java,
gnu/java/text/LocaleData_en.java,
gnu/java/text/LocaleData_en_US.java,
gnu/java/text/SentenceBreakIterator.java,
gnu/java/text/WordBreakIterator.java: Renamed from gnu/gcj/text/*.
* gnu/gcj/text/BaseBreakIterator.java (last): Advance past final
character.
* java/text/BreakIterator.java (getAvailableLocales): Use
Classpath implementation.
(getInstance): Look in gnu.java.locale for information.
(getCharacterInstance, getLineInstance, getSentenceInstance,
getWordInstance): Look in gnu.java.text for implementations.
* java/text/DecimalFormatSymbols.java: Reindented
(clone): Use Classpath implementation.
(DecimalFormatSymbols(DecimalFormatSymbols)): Removed.
(DecimalFormatSymbols(Locale)): Look in gnu.java.locale for
information.
* java/text/DateFormat.java: Merged with Classpath.
(getAvailableLocales): Use Classpath implementation.
(format(Object,StringBuffer,FieldPosition)): Minor cleanup.
(computeInstance): Look in gnu.java.locale for information.
* java/text/NumberFormat.java: Reindented.
(computeInstance): Look in gnu.java.locale for information.
(getAvailableLocales): Use implementation from Classpath.
(setMaximumIntegerDigits): Likewise.
(setMinimumIntegerDigits): Likewise.
(setMaximumFractionDigits): Likewise.
(clone): Removed.
* java/text/DecimalFormat.java: Reindented.
* gnu/java/locale/LocaleInformation_en.java: Copied from Classpath.
* gnu/java/locale/LocaleInformation_en_US.java: Copied from Classpath.
* Makefile.in: Rebuilt.
* Makefile.am (ordinary_java_source_files): Added all new files.
(ordinary_java_source_files): Renamed or removed gnu/gcj/text/*.
* java/security/spec/AlgorithmParameterSpec.java,
java/security/spec/KeySpec.java: Re-merged with Classpath.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45390 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/text/AttributedCharacterIterator.java')
-rw-r--r-- | libjava/java/text/AttributedCharacterIterator.java | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/libjava/java/text/AttributedCharacterIterator.java b/libjava/java/text/AttributedCharacterIterator.java new file mode 100644 index 00000000000..379181e7c09 --- /dev/null +++ b/libjava/java/text/AttributedCharacterIterator.java @@ -0,0 +1,333 @@ +/* AttributedCharacterIterator.java -- Iterate over attributes + Copyright (C) 1998, 1999 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. */ + + +package java.text; + +import java.io.Serializable; +import java.io.InvalidObjectException; +import java.util.Set; +import java.util.Map; + +/** + * This interface extends the <code>CharacterIterator</code> interface + * in order to support iteration over character attributes as well as + * over the characters themselves. + * <p> + * In addition to attributes of specific characters, this interface + * supports the concept of the "attribute run", which is an attribute + * that is defined for a particular value across an entire range of + * characters or which is undefined over a range of characters. + * + * @version 0.0 + * + * @author Aaron M. Renn (arenn@urbanophile.com) + */ +public interface AttributedCharacterIterator extends CharacterIterator +{ + +/* + * Inner Classes + */ + +/** + * This class defines attribute keys that are used as text attributes. + */ +public static class Attribute implements Serializable +{ + +/*************************************************************************/ + +/* + * Static Variables + */ + +/** + * This is the attribute for the language of the text. The value of + * attributes of this key type are instances of <code>Locale</code>. + */ +public static final Attribute LANGUAGE = new Attribute("LANGUAGE"); + +/** + * This is the attribute for the reading form of text. This is used + * for storing pronunciation along with the written text for languages + * which need it. The value of attributes of this key type are + * instances of <code>Annotation</code> which wrappers a <code>String</code>. + */ +public static final Attribute READING = new Attribute("READING"); + +/** + * This is the attribute for input method segments. The value of attributes + * of this key type are instances of <code>Annotation</code> which wrapper + * a <code>String</code>. + */ +public static final Attribute INPUT_METHOD_SEGMENT = + new Attribute("INPUT_METHOD_SEGMENT"); + +/*************************************************************************/ + +/* + * Instance Variables + */ + +/** + * This is the name of the attribute key + * @serial + */ +private String name; + +/*************************************************************************/ + +/* + * Constructors + */ + +/** + * This method initializes a new instance of this class with the specified + * name. + * + * @param name The name of this attribute key. + */ +protected +Attribute(String name) +{ + this.name = name; +} + +/*************************************************************************/ + +/* + * Instance Methods + */ + +/** + * This method returns the name of this attribute. + * + * @return The attribute name + */ +protected String +getName() +{ + return(name); +} + +/*************************************************************************/ + +/** + * This method resolves an instance of <code>AttributedCharacterIterator.Attribute</code> + * that is being deserialized to one of the three pre-defined attribute + * constants. It does this by comparing the names of the attributes. The + * constant that the deserialized object resolves to is returned. + * + * @return The resolved contant value + * + * @exception InvalidObjectException If the object being deserialized cannot be resolved. + */ +protected Object +readResolve() throws InvalidObjectException +{ + if (this.equals(READING)) + return(READING); + + if (this.equals(LANGUAGE)) + return(LANGUAGE); + + if (this.equals(INPUT_METHOD_SEGMENT)) + return(INPUT_METHOD_SEGMENT); + + throw new InvalidObjectException("Can't resolve Attribute: " + getName()); +} + +/*************************************************************************/ + +/** + * This method tests this object for equality against the specified object. + * The two objects will be considered equal if and only if: + * <ul> + * <li>The specified object is not <code>null</code>. + * <li>The specified object is an instance of <code>AttributedCharacterIterator.Attribute</code>. + * <li>The specified object has the same attribute name as this object. + * </ul> + * + * @param The <code>Object</code> to test for equality against this object. + * + * @return <code>true</code> if the specified object is equal to this one, <code>false</code> otherwise. + */ +public final boolean +equals(Object obj) +{ + if (obj == this) + return(true); + else + return(false); +} + +/*************************************************************************/ + +/** + * This method returns a hash value for this object. + * + * @return A hash value for this object. + */ +public final int +hashCode() +{ + return(super.hashCode()); +} + +/*************************************************************************/ + +/** + * This method returns a <code>String</code> representation of this object. + * + * @return A <code>String</code> representation of this object. + */ +public String +toString() +{ + return(getClass().getName() + "(" + getName() + ")"); +} + +} // Inner class Attribute + +/*************************************************************************/ + +/* + * Instance Methods + */ + +/** + * This method returns a list of all keys that are defined for the + * text range. This can be an empty list if no attributes are defined. + * + * @return A list of keys + */ +public abstract Set +getAllAttributeKeys(); + +/*************************************************************************/ + +/** + * This method returns a <code>Map</code> of the attributed defined for + * the current character. + * + * @return A <code>Map</code> of the attributes for the current character. + */ +public abstract Map +getAttributes(); + +/*************************************************************************/ + +/** + * This method returns the value of the specified attribute for the + * current character. If the attribute is not defined for the current + * character, <code>null</code> is returned. + * + * @param attrib The attribute to retrieve the value of. + * + * @return The value of the specified attribute + */ +public abstract Object +getAttribute(AttributedCharacterIterator.Attribute attrib); + +/*************************************************************************/ + +/** + * This method returns the index of the first character in the run that + * contains all attributes defined for the current character. + * + * @return The start index of the run + */ +public abstract int +getRunStart(); + +/*************************************************************************/ + +/** + * This method returns the index of the first character in the run that + * contains all attributes in the specified <code>Set</code> defined for + * the current character. + * + * @param attribs The <code>Set</code> of attributes. + * + * @return The start index of the run. + */ +public abstract int +getRunStart(Set attribs); + +/*************************************************************************/ + +/** + * This method returns the index of the first character in the run that + * contains the specified attribute defined for the current character. + * + * @param attrib The attribute. + * + * @return The start index of the run. + */ +public abstract int +getRunStart(AttributedCharacterIterator.Attribute attrib); + +/*************************************************************************/ + +/** + * This method returns the index of the character after the end of the run + * that contains all attributed defined for the current character. + * + * @return The end index of the run. + */ +public abstract int +getRunLimit(); + +/*************************************************************************/ + +/** + * This method returns the index of the character after the end of the run + * that contains all attributes in the specified <code>Set</code> defined + * for the current character. + * + * @param attribs The <code>Set</code> of attributes. + * + * @return The end index of the run. + */ +public abstract int +getRunLimit(Set attribs); + +/*************************************************************************/ + +/** + * This methods returns the index of the character after the end of the run + * that contains the specified attribute defined for the current character. + * + * @param attrib The attribute. + * + * @return The end index of the run. + */ +public abstract int +getRunLimit(AttributedCharacterIterator.Attribute attrib); + +} // interface AttributedCharacterIterator + |