|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectau.id.jericho.lib.html.AttributesOutputSegment
Implements an IOutputSegment 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 will result in unspecified behaviour.
Note that methods in the Attributes class treat attribute names as case insensitive,
whereas the Map will treat them as case sensitive.
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.add(bodyAttributesOutputSegment);
String htmlDocumentWithGreenBackground=outputDocument.toString();
OutputDocument,
Attributes| Field Summary |
| Fields inherited from interface au.id.jericho.lib.html.IOutputSegment |
COMPARATOR |
| Constructor Summary | |
AttributesOutputSegment(Attributes attributes,
boolean convertNamesToLowerCase)
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)
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()
Returns the character position in the OutputDocument where this segment begins. |
java.lang.String |
getDebugInfo()
Returns a string representation of this object useful for debugging purposes. |
int |
getEnd()
Returns the character position in the OutputDocument where this segment ends. |
java.util.Map |
getMap()
Returns the Map containing the name/value entries to be output. |
void |
output(java.io.Writer writer)
Outputs the contents of the map as HTML attribute name/value pairs to the specified Writer. |
java.lang.String |
toString()
Returns the content of this output segment as a String. |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public AttributesOutputSegment(Attributes attributes,
boolean convertNamesToLowerCase)
AttributesOutputSegment with the same span and initial name/value entries as the specified source Attributes.
Specifying a value of true in the convertNamesToLowerCase argument
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)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.
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.AttributesOutputSegment(Attributes,Map)
public AttributesOutputSegment(Attributes attributes,
java.util.Map map)
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.
attributes - the Attributes defining the span of the new AttributesOutputSegment.map - the Map containing the name/value entries.AttributesOutputSegment(Attributes, boolean convertNamesToLowerCase)| Method Detail |
public int getBegin()
IOutputSegmentOutputDocument where this segment begins.
getBegin in interface IOutputSegmentOutputDocument where this segment begins.public int getEnd()
IOutputSegmentOutputDocument where this segment ends.
getEnd in interface IOutputSegmentOutputDocument where this segment ends.public java.util.Map getMap()
Map containing the name/value entries to be output.
Map containing the name/value entries to be output.
public void output(java.io.Writer writer)
throws java.io.IOException
Writer.
Each attribute is preceded by a single space, and all values are encoded and enclosed in double quotes.
output in interface IOutputSegmentwriter - the Writer to which the output is to be sent.
java.io.IOException - if an I/O exception occurs.Attributes.generateHTML(Map attributesMap)public java.lang.String toString()
IOutputSegmentString.
Note that before version 1.5 this returned a representation of this object useful for debugging purposes,
which can now be obtained via the getDebugInfo() method.
toString in interface IOutputSegmentpublic java.lang.String getDebugInfo()
IOutputSegment
getDebugInfo in interface IOutputSegment
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||