[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cp-patches] FYI: AttributedString.java reformatted
From: |
David Gilbert |
Subject: |
[cp-patches] FYI: AttributedString.java reformatted |
Date: |
Wed, 27 Jul 2005 16:23:44 +0000 |
User-agent: |
Mozilla Thunderbird 1.0.2 (X11/20050426) |
I committed this patch:
2005-07-27 David Gilbert <address@hidden>
* java/text/AttributedString.java: reformatted.
Regards,
Dave Gilbert
Index: java/text/AttributedString.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/text/AttributedString.java,v
retrieving revision 1.12
diff -u -r1.12 AttributedString.java
--- java/text/AttributedString.java 23 Jul 2005 20:25:15 -0000 1.12
+++ java/text/AttributedString.java 27 Jul 2005 15:19:51 -0000
@@ -1,5 +1,5 @@
/* AttributedString.java -- Models text with attributes
- Copyright (C) 1998, 1999, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,380 +47,314 @@
import java.util.Set;
/**
- * This class models a <code>String</code> with attributes over various
- * subranges of the string. It allows applications to access this
- * information via the <code>AttributedCharcterIterator</code> interface.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (address@hidden)
- */
-public class AttributedString
-{
-
-/*************************************************************************/
-
-/*
- * Inner Classes
- */
-
-/**
- * This class contains the attributes and ranges of text over which
- * that attributes apply.
- */
-final class AttributeRange
-{
-
-/*
- * Instance Variables
- */
-
-/**
- * A Map of the attributes
- */
-Map attribs;
-
-/**
- * The beginning index of the attributes
- */
-int begin_index;
-
-/**
- * The ending index of the attributes
- */
-int end_index;
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-AttributeRange(Map attribs, int begin_index, int end_index)
-{
- this.attribs = attribs;
- this.begin_index = begin_index;
- this.end_index = end_index;
-}
-
-} // Inner class AttributeRange
-
-/*************************************************************************/
-
-/*
- * Instance Variables
- */
-
-/**
- * This object holds the string we are representing.
- */
-private StringCharacterIterator sci;
-
-/**
- * This is the attribute information
- */
-private AttributeRange[] attribs;
-
-/*************************************************************************/
-
-/*
- * Constructors
+ * This class models a <code>String</code> with attributes over various
+ * subranges of the string. It allows applications to access this
+ * information via the <code>AttributedCharcterIterator</code> interface.
+ *
+ * @author Aaron M. Renn (address@hidden)
*/
-
-/**
- * This method initializes a new instance of <code>AttributedString</code>
- * that represents the specified <code>String</code> with no attributes.
- *
- * @param str The <code>String</code> to be attributed.
- */
-public
-AttributedString(String str)
-{
- sci = new StringCharacterIterator(str);
- attribs = new AttributeRange[0];
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>AttributedString</code>
- * that represents that specified <code>String</code> with the specified
- * attributes over the entire length of the <code>String</code>.
- *
- * @param str The <code>String</code> to be attributed.
- * @param attributes The attribute list.
- */
-public
-AttributedString(String str, Map attributes)
-{
- this(str);
-
- attribs = new AttributeRange[1];
- attribs[0] = new AttributeRange(attributes, 0, str.length());
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>AttributedString</code>
- * that will use the text and attribute information from the specified
- * <code>AttributedCharacterIterator</code>.
- *
- * @param aci The <code>AttributedCharacterIterator</code> containing the
text and attribute information.
- */
-public
-AttributedString(AttributedCharacterIterator aci)
-{
- this(aci, aci.getBeginIndex(), aci.getEndIndex(), null);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>AttributedString</code>
- * that will use the text and attribute information from the specified
- * subrange of the specified <code>AttributedCharacterIterator</code>.
- *
- * @param aci The <code>AttributedCharacterIterator</code> containing the
text and attribute information.
- * @param begin_index The beginning index of the text subrange.
- * @param end_index The ending index of the text subrange.
- */
-public
-AttributedString(AttributedCharacterIterator aci, int begin_index,
- int end_index)
-{
- this(aci, begin_index, end_index, null);
-}
-
-/*************************************************************************/
-
-/**
- * This method initializes a new instance of <code>AttributedString</code>
- * that will use the text and attribute information from the specified
- * subrange of the specified <code>AttributedCharacterIterator</code>.
- * Only attributes from the source iterator that are present in the
- * specified array of attributes will be included in the attribute list
- * for this object.
- *
- * @param aci The <code>AttributedCharacterIterator</code> containing the
text and attribute information.
- * @param begin_index The beginning index of the text subrange.
- * @param end_index The ending index of the text subrange.
- * @param attributes A list of attributes to include from the iterator, or
<code>null</code> to include all attributes.
- */
-public
-AttributedString(AttributedCharacterIterator aci, int begin_index,
- int end_index, AttributedCharacterIterator.Attribute[]
attributes)
+public class AttributedString
{
- // Validate some arguments
- if ((begin_index < 0) || (end_index < begin_index))
- throw new IllegalArgumentException("Bad index values");
-
- StringBuffer sb = new StringBuffer("");
-
- // Get the valid attribute list
- Set all_attribs = aci.getAllAttributeKeys();
- if (attributes != null)
- all_attribs.retainAll(Arrays.asList(attributes));
-
- // Loop through and extract the attributes
- char c = aci.setIndex(begin_index);
-
- ArrayList accum = new ArrayList();
- do
- {
- sb.append(c);
-
- Iterator iter = all_attribs.iterator();
- while(iter.hasNext())
- {
- Object obj = iter.next();
-
- // What should we do if this is not true?
- if (!(obj instanceof AttributedCharacterIterator.Attribute))
- continue;
-
- AttributedCharacterIterator.Attribute attrib =
- (AttributedCharacterIterator.Attribute)obj;
-
- // Make sure the attribute is defined.
- int rl = aci.getRunLimit(attrib);
- if (rl == -1)
- continue;
- if (rl > end_index)
- rl = end_index;
- rl -= begin_index;
-
- // Check to see if we already processed this one
- int rs = aci.getRunStart(attrib);
- if ((rs < aci.getIndex()) && (aci.getIndex() != begin_index))
- continue;
-
- // If the attribute run starts before the beginning index, we
- // need to junk it if it is an Annotation.
- Object attrib_obj = aci.getAttribute(attrib);
- if (rs < begin_index)
- {
- if (attrib_obj instanceof Annotation)
- continue;
-
- rs = begin_index;
- }
- else
- {
- rs -= begin_index;
- }
-
- // Create a map object. Yes this will only contain one attribute
- Map new_map = new Hashtable();
- new_map.put(attrib, attrib_obj);
-
- // Add it to the attribute list.
- accum.add(new AttributeRange(new_map, rs, rl));
- }
- c = aci.next();
+ /**
+ * This class contains the attributes and ranges of text over which
+ * that attributes apply.
+ */
+ final class AttributeRange
+ {
+
+ /** A Map of the attributes */
+ Map attribs;
+
+ /** The beginning index of the attributes */
+ int begin_index;
+
+ /** The ending index of the attributes */
+ int end_index;
+
+ AttributeRange(Map attribs, int begin_index, int end_index)
+ {
+ this.attribs = attribs;
+ this.begin_index = begin_index;
+ this.end_index = end_index;
}
- while(c != CharacterIterator.DONE);
-
- attribs = new AttributeRange[accum.size()];
- attribs = (AttributeRange[]) accum.toArray(attribs);
-
- sci = new StringCharacterIterator(sb.toString());
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-/**
- * This method adds a new attribute that will cover the entire string.
- *
- * @param attrib The attribute to add.
- * @param value The value of the attribute.
- */
-public void
-addAttribute(AttributedCharacterIterator.Attribute attrib, Object value)
-{
- addAttribute(attrib, value, 0, sci.getEndIndex());
-}
+ } // Inner class AttributeRange
-/*************************************************************************/
+ /** This object holds the string we are representing. */
+ private StringCharacterIterator sci;
-/**
- * This method adds a new attribute that will cover the specified subrange
- * of the string.
- *
- * @param attrib The attribute to add.
- * @param value The value of the attribute, which may be null.
- * @param begin_index The beginning index of the subrange.
- * @param end_index The ending index of the subrange.
- *
- * @exception IllegalArgumentException If attribute is <code>null</code> or
the subrange is not valid.
- */
-public void
-addAttribute(AttributedCharacterIterator.Attribute attrib, Object value,
- int begin_index, int end_index)
-{
- if (attrib == null)
- throw new IllegalArgumentException("null attribute");
+ /** This is the attribute information */
+ private AttributeRange[] attribs;
- HashMap hm = new HashMap();
- hm.put(attrib, value);
-
- addAttributes(hm, begin_index, end_index);
-}
-
-/*************************************************************************/
-
-/**
- * This method adds all of the attributes in the specified list to the
- * specified subrange of the string.
- *
- * @param attributes The list of attributes.
- * @param begin_index The beginning index.
- * @param end_index The ending index
- *
- * @throws IllegalArgumentException If the list is <code>null</code> or the
- * subrange is not valid.
- */
-public void
-addAttributes(Map attributes, int begin_index, int end_index)
-{
- if (attributes == null)
- throw new IllegalArgumentException("null attribute");
-
- if ((begin_index < 0) || (end_index > sci.getEndIndex()) ||
- (end_index < begin_index))
- throw new IllegalArgumentException("bad range");
-
- AttributeRange[] new_list = new AttributeRange[attribs.length + 1];
- System.arraycopy(attribs, 0, new_list, 0, attribs.length);
- attribs = new_list;
- attribs[attribs.length - 1] = new AttributeRange(attributes, begin_index,
- end_index);
-}
-
-/*************************************************************************/
-
-/**
- * This method returns an <code>AttributedCharacterIterator</code> that
- * will iterate over the entire string.
- *
- * @return An <code>AttributedCharacterIterator</code> for the entire string.
- */
-public AttributedCharacterIterator
-getIterator()
-{
- return(new AttributedStringIterator(sci, attribs, 0, sci.getEndIndex(),
null));
-}
-
-/*************************************************************************/
-
-/**
- * This method returns an <code>AttributedCharacterIterator</code> that
- * will iterate over the entire string. This iterator will return information
- * about the list of attributes in the specified array. Attributes not in
- * the array may or may not be returned by the iterator. If the specified
- * array is <code>null</code>, all attributes will be returned.
- *
- * @param attributes A list of attributes to include in the returned iterator.
- *
- * @return An <code>AttributedCharacterIterator</code> for this string.
- */
-public AttributedCharacterIterator
-getIterator(AttributedCharacterIterator.Attribute[] attributes)
-{
- return(getIterator(attributes, 0, sci.getEndIndex()));
-}
-
-/*************************************************************************/
-
-/**
- * This method returns an <code>AttributedCharacterIterator</code> that
- * will iterate over the specified subrange. This iterator will return
information
- * about the list of attributes in the specified array. Attributes not in
- * the array may or may not be returned by the iterator. If the specified
- * array is <code>null</code>, all attributes will be returned.
- *
- * @param attributes A list of attributes to include in the returned iterator.
- * @param begin_index The beginning index of the subrange.
- * @param end_index The ending index of the subrange.
- *
- * @return An <code>AttributedCharacterIterator</code> for this string.
- */
-public AttributedCharacterIterator
-getIterator(AttributedCharacterIterator.Attribute[] attributes,
- int begin_index, int end_index)
-{
- if ((begin_index < 0) || (end_index > sci.getEndIndex()) ||
- (end_index < begin_index))
- throw new IllegalArgumentException("bad range");
-
- return(new AttributedStringIterator(sci, attribs, begin_index, end_index,
- attributes));
-}
+ /**
+ * This method initializes a new instance of <code>AttributedString</code>
+ * that represents the specified <code>String</code> with no attributes.
+ *
+ * @param str The <code>String</code> to be attributed.
+ */
+ public AttributedString(String str)
+ {
+ sci = new StringCharacterIterator(str);
+ attribs = new AttributeRange[0];
+ }
+
+ /**
+ * This method initializes a new instance of <code>AttributedString</code>
+ * that represents that specified <code>String</code> with the specified
+ * attributes over the entire length of the <code>String</code>.
+ *
+ * @param str The <code>String</code> to be attributed.
+ * @param attributes The attribute list.
+ */
+ public AttributedString(String str, Map attributes)
+ {
+ this(str);
+
+ attribs = new AttributeRange[1];
+ attribs[0] = new AttributeRange(attributes, 0, str.length());
+ }
+
+ /**
+ * This method initializes a new instance of <code>AttributedString</code>
+ * that will use the text and attribute information from the specified
+ * <code>AttributedCharacterIterator</code>.
+ *
+ * @param aci The <code>AttributedCharacterIterator</code> containing the
+ * text and attribute information.
+ */
+ public AttributedString(AttributedCharacterIterator aci)
+ {
+ this(aci, aci.getBeginIndex(), aci.getEndIndex(), null);
+ }
+
+ /**
+ * This method initializes a new instance of <code>AttributedString</code>
+ * that will use the text and attribute information from the specified
+ * subrange of the specified <code>AttributedCharacterIterator</code>.
+ *
+ * @param aci The <code>AttributedCharacterIterator</code> containing the
+ * text and attribute information.
+ * @param begin_index The beginning index of the text subrange.
+ * @param end_index The ending index of the text subrange.
+ */
+ public AttributedString(AttributedCharacterIterator aci, int begin_index,
+ int end_index)
+ {
+ this(aci, begin_index, end_index, null);
+ }
+
+ /**
+ * This method initializes a new instance of <code>AttributedString</code>
+ * that will use the text and attribute information from the specified
+ * subrange of the specified <code>AttributedCharacterIterator</code>.
+ * Only attributes from the source iterator that are present in the
+ * specified array of attributes will be included in the attribute list
+ * for this object.
+ *
+ * @param aci The <code>AttributedCharacterIterator</code> containing the
+ * text and attribute information.
+ * @param begin_index The beginning index of the text subrange.
+ * @param end_index The ending index of the text subrange.
+ * @param attributes A list of attributes to include from the iterator, or
+ * <code>null</code> to include all attributes.
+ */
+ public AttributedString(AttributedCharacterIterator aci, int begin_index,
+ int end_index, AttributedCharacterIterator.Attribute[] attributes)
+ {
+ // Validate some arguments
+ if ((begin_index < 0) || (end_index < begin_index))
+ throw new IllegalArgumentException("Bad index values");
+
+ StringBuffer sb = new StringBuffer("");
+
+ // Get the valid attribute list
+ Set all_attribs = aci.getAllAttributeKeys();
+ if (attributes != null)
+ all_attribs.retainAll(Arrays.asList(attributes));
+
+ // Loop through and extract the attributes
+ char c = aci.setIndex(begin_index);
+
+ ArrayList accum = new ArrayList();
+ do
+ {
+ sb.append(c);
+
+ Iterator iter = all_attribs.iterator();
+ while(iter.hasNext())
+ {
+ Object obj = iter.next();
+
+ // What should we do if this is not true?
+ if (!(obj instanceof AttributedCharacterIterator.Attribute))
+ continue;
+
+ AttributedCharacterIterator.Attribute attrib =
+ (AttributedCharacterIterator.Attribute)obj;
+
+ // Make sure the attribute is defined.
+ int rl = aci.getRunLimit(attrib);
+ if (rl == -1)
+ continue;
+ if (rl > end_index)
+ rl = end_index;
+ rl -= begin_index;
+
+ // Check to see if we already processed this one
+ int rs = aci.getRunStart(attrib);
+ if ((rs < aci.getIndex()) && (aci.getIndex() != begin_index))
+ continue;
+
+ // If the attribute run starts before the beginning index, we
+ // need to junk it if it is an Annotation.
+ Object attrib_obj = aci.getAttribute(attrib);
+ if (rs < begin_index)
+ {
+ if (attrib_obj instanceof Annotation)
+ continue;
+
+ rs = begin_index;
+ }
+ else
+ {
+ rs -= begin_index;
+ }
+
+ // Create a map object. Yes this will only contain one attribute
+ Map new_map = new Hashtable();
+ new_map.put(attrib, attrib_obj);
+
+ // Add it to the attribute list.
+ accum.add(new AttributeRange(new_map, rs, rl));
+ }
+
+ c = aci.next();
+ }
+ while(c != CharacterIterator.DONE);
+
+ attribs = new AttributeRange[accum.size()];
+ attribs = (AttributeRange[]) accum.toArray(attribs);
+
+ sci = new StringCharacterIterator(sb.toString());
+ }
+
+ /**
+ * This method adds a new attribute that will cover the entire string.
+ *
+ * @param attrib The attribute to add.
+ * @param value The value of the attribute.
+ */
+ public void addAttribute(AttributedCharacterIterator.Attribute attrib,
+ Object value)
+ {
+ addAttribute(attrib, value, 0, sci.getEndIndex());
+ }
+
+ /**
+ * This method adds a new attribute that will cover the specified subrange
+ * of the string.
+ *
+ * @param attrib The attribute to add.
+ * @param value The value of the attribute, which may be null.
+ * @param begin_index The beginning index of the subrange.
+ * @param end_index The ending index of the subrange.
+ *
+ * @exception IllegalArgumentException If attribute is <code>null</code> or
+ * the subrange is not valid.
+ */
+ public void addAttribute(AttributedCharacterIterator.Attribute attrib,
+ Object value, int begin_index, int end_index)
+ {
+ if (attrib == null)
+ throw new IllegalArgumentException("null attribute");
+
+ HashMap hm = new HashMap();
+ hm.put(attrib, value);
+
+ addAttributes(hm, begin_index, end_index);
+ }
+
+ /**
+ * This method adds all of the attributes in the specified list to the
+ * specified subrange of the string.
+ *
+ * @param attributes The list of attributes.
+ * @param begin_index The beginning index.
+ * @param end_index The ending index
+ *
+ * @throws IllegalArgumentException If the list is <code>null</code> or the
+ * subrange is not valid.
+ */
+ public void addAttributes(Map attributes, int begin_index, int end_index)
+ {
+ if (attributes == null)
+ throw new IllegalArgumentException("null attribute");
+
+ if ((begin_index < 0) || (end_index > sci.getEndIndex()) ||
+ (end_index < begin_index))
+ throw new IllegalArgumentException("bad range");
+
+ AttributeRange[] new_list = new AttributeRange[attribs.length + 1];
+ System.arraycopy(attribs, 0, new_list, 0, attribs.length);
+ attribs = new_list;
+ attribs[attribs.length - 1] = new AttributeRange(attributes, begin_index,
+ end_index);
+ }
+
+ /**
+ * This method returns an <code>AttributedCharacterIterator</code> that
+ * will iterate over the entire string.
+ *
+ * @return An <code>AttributedCharacterIterator</code> for the entire string.
+ */
+ public AttributedCharacterIterator getIterator()
+ {
+ return(new AttributedStringIterator(sci, attribs, 0, sci.getEndIndex(),
+ null));
+ }
+
+ /**
+ * This method returns an <code>AttributedCharacterIterator</code> that
+ * will iterate over the entire string. This iterator will return
information
+ * about the list of attributes in the specified array. Attributes not in
+ * the array may or may not be returned by the iterator. If the specified
+ * array is <code>null</code>, all attributes will be returned.
+ *
+ * @param attributes A list of attributes to include in the returned
iterator.
+ *
+ * @return An <code>AttributedCharacterIterator</code> for this string.
+ */
+ public AttributedCharacterIterator getIterator(
+ AttributedCharacterIterator.Attribute[] attributes)
+ {
+ return(getIterator(attributes, 0, sci.getEndIndex()));
+ }
+
+ /**
+ * This method returns an <code>AttributedCharacterIterator</code> that
+ * will iterate over the specified subrange. This iterator will return
+ * information about the list of attributes in the specified array.
+ * Attributes not in the array may or may not be returned by the iterator.
+ * If the specified array is <code>null</code>, all attributes will be
+ * returned.
+ *
+ * @param attributes A list of attributes to include in the returned
iterator.
+ * @param begin_index The beginning index of the subrange.
+ * @param end_index The ending index of the subrange.
+ *
+ * @return An <code>AttributedCharacterIterator</code> for this string.
+ */
+ public AttributedCharacterIterator getIterator(
+ AttributedCharacterIterator.Attribute[] attributes,
+ int begin_index, int end_index)
+ {
+ if ((begin_index < 0) || (end_index > sci.getEndIndex()) ||
+ (end_index < begin_index))
+ throw new IllegalArgumentException("bad range");
+
+ return(new AttributedStringIterator(sci, attribs, begin_index, end_index,
+ attributes));
+ }
} // class AttributedString
-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] FYI: AttributedString.java reformatted,
David Gilbert <=