au.id.jericho.lib.html
Class AttributesOutputSegment

java.lang.Object
  extended byAttributesOutputSegment
All Implemented Interfaces:
CharStreamSource, OutputSegment

Deprecated. Use the OutputDocument.replace(Attributes, Map) and OutputDocument.replace(Attributes, boolean convertNamesToLowerCase) methods instead.

public class AttributesOutputSegment
extends java.lang.Object
implements OutputSegment

Implements an OutputSegment whose content is a list of attribute name/value pairs.

This output segment is designed to replace the original Attributes segment in the source, providing a simple means of adding, modifying and removing attributes.

Each instance of this class contains a java.util.Map of name/value pairs which can either be specified directly in the constructor or initialised to the same entries as the source Attributes specified in the constructor. This map can be accessed via the getMap() method, and its entries modified as required before output.

Keys in the map must be String objects, and values must implement the CharSequence interface.

An attribute with no value is represented by a map entry with a null value.

Attribute values are stored unencoded in the map, and are automatically encoded if necessary during output.

The use of invalid characters in attribute names results in unspecified behaviour.

Note that methods in the Attributes class treat attribute names as case insensitive, whereas the Map treats them as case sensitive.

Example of Usage:

  Source source=new Source(htmlDocument);
  Attributes bodyAttributes
    =source.findNextStartTag(0,Tag.BODY).getAttributes();
  AttributesOutputSegment bodyAttributesOutputSegment
    =new AttributesOutputSegment(bodyAttributes,true);
  bodyAttributesOutputSegment.getMap().put("bgcolor","green");
  OutputDocument outputDocument=new OutputDocument(source);
  outputDocument.register(bodyAttributesOutputSegment);
  String htmlDocumentWithGreenBackground=outputDocument.toString();
 

This class has been deprecated as of version 2.2 and the functionality replaced with the OutputDocument.replace(Attributes, Map) and OutputDocument.replace(Attributes, boolean convertNamesToLowerCase) methods.

See Also:
OutputDocument, Attributes

Field Summary
 
Fields inherited from interface OutputSegment
COMPARATOR
 
Constructor Summary
AttributesOutputSegment(Attributes attributes, boolean convertNamesToLowerCase)
          Deprecated. Constructs a new AttributesOutputSegment with the same span and initial name/value entries as the specified source Attributes.
AttributesOutputSegment(Attributes attributes, java.util.Map map)
          Deprecated. Constructs a new AttributesOutputSegment with the same span as the specified source Attributes, using the specified Map to store the entries.
 
Method Summary
 int getBegin()
          Deprecated. Returns the character position in the source text of the output document where this segment begins.
 java.lang.String getDebugInfo()
          Deprecated. Returns a string representation of this object useful for debugging purposes.
 int getEnd()
          Deprecated. Returns the character position in the source text of the output document where this segment ends.
 long getEstimatedMaximumOutputLength()
          Deprecated. Returns the estimated maximum number of characters in the output, or -1 if no estimate is available.
 java.util.Map getMap()
          Deprecated. Returns the Map containing the name/value entries to be output.
 void output(java.io.Writer writer)
          Deprecated. Use writeTo(Writer) instead.
 java.lang.String toString()
          Deprecated. Returns the content of this output segment as a String.
 void writeTo(java.io.Writer writer)
          Deprecated. Writes the contents of the map as HTML attribute name/value pairs to the specified Writer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AttributesOutputSegment

public AttributesOutputSegment(Attributes attributes,
                               boolean convertNamesToLowerCase)
Deprecated. 
Constructs a new AttributesOutputSegment with the same span and initial name/value entries as the specified source Attributes.

Specifying a value of true as an argument to the convertNamesToLowerCase parameter causes all attribute names to be converted to lower case in the map. This simplifies the process of finding/updating specific attributes since map keys are case sensitive.

Attribute values are automatically decoded before being loaded into the map.

Calling this constructor with the following code:

new AttributesOutputSegment(attributes, convertNamesToLowerCase)
is logically equivalent to calling:
new AttributesOutputSegment(attributes, attributes.populateMap(new LinkedHashMap(), convertNamesToLowerCase))

The use of LinkedHashMap to implement the map ensures (probably unnecessarily) that existing attributes are output in the same order as they appear in the source document, and new attributes are output in the same order as they are added.

Parameters:
attributes - the Attributes defining the span and initial name/value entries of the new AttributesOutputSegment.
convertNamesToLowerCase - specifies whether all attribute names are converted to lower case in the map.
See Also:
AttributesOutputSegment(Attributes,Map)

AttributesOutputSegment

public AttributesOutputSegment(Attributes attributes,
                               java.util.Map map)
Deprecated. 
Constructs a new AttributesOutputSegment with the same span as the specified source Attributes, using the specified Map to store the entries.

This constructor might be used if the Map containing the new attribute values should not be preloaded with the same entries as the source attributes, or a map implementation other than LinkedHashMap is required.

Parameters:
attributes - the Attributes defining the span of the new AttributesOutputSegment.
map - the Map containing the name/value entries.
See Also:
AttributesOutputSegment(Attributes, boolean convertNamesToLowerCase)
Method Detail

getBegin

public int getBegin()
Deprecated. 
Description copied from interface: OutputSegment
Returns the character position in the source text of the output document where this segment begins.

Specified by:
getBegin in interface OutputSegment
Returns:
the character position in the source text of the output document where this segment begins.

getEnd

public int getEnd()
Deprecated. 
Description copied from interface: OutputSegment
Returns the character position in the source text of the output document where this segment ends.

Specified by:
getEnd in interface OutputSegment
Returns:
the character position in the source text of the output document where this segment ends.

getMap

public java.util.Map getMap()
Deprecated. 
Returns the Map containing the name/value entries to be output.

Returns:
the Map containing the name/value entries to be output.

writeTo

public void writeTo(java.io.Writer writer)
             throws java.io.IOException
Deprecated. 
Writes the contents of the map as HTML attribute name/value pairs to the specified Writer.

Each attribute is preceded by a single space, and all values are encoded and enclosed in double quotes.

Specified by:
writeTo in interface OutputSegment
Parameters:
writer - the destination java.io.Writer for the output.
Throws:
java.io.IOException - if an I/O exception occurs.
See Also:
Attributes.generateHTML(Map attributesMap)

getEstimatedMaximumOutputLength

public long getEstimatedMaximumOutputLength()
Deprecated. 
Description copied from interface: CharStreamSource
Returns the estimated maximum number of characters in the output, or -1 if no estimate is available.

The returned value should be used as a guide for efficiency purposes only, for example to set an initial StringBuffer capacity. There is no guarantee that the length of the output is indeed less than this value, as classes implementing this method often use assumptions based on typical usage to calculate the estimate.

Specified by:
getEstimatedMaximumOutputLength in interface CharStreamSource
Returns:
the estimated maximum number of characters in the output, or -1 if no estimate is available.

toString

public java.lang.String toString()
Deprecated. 
Description copied from interface: OutputSegment
Returns the content of this output segment as a String.

Note that before version 2.0 this returned a representation of this object useful for debugging purposes, which can now be obtained via the getDebugInfo() method.

Specified by:
toString in interface OutputSegment

getDebugInfo

public java.lang.String getDebugInfo()
Deprecated. 
Description copied from interface: OutputSegment
Returns a string representation of this object useful for debugging purposes.

Specified by:
getDebugInfo in interface OutputSegment
Returns:
a string representation of this object useful for debugging purposes.

output

public void output(java.io.Writer writer)
            throws java.io.IOException
Deprecated. Use writeTo(Writer) instead.

Outputs the contents of the map as HTML attribute name/value pairs to the specified Writer.

Parameters:
writer - the destination java.io.Writer for the output.
Throws:
java.io.IOException - if an I/O exception occurs.