|
|||||||||
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()
IOutputSegment
OutputDocument
where this segment begins.
getBegin
in interface IOutputSegment
OutputDocument
where this segment begins.public int getEnd()
IOutputSegment
OutputDocument
where this segment ends.
getEnd
in interface IOutputSegment
OutputDocument
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 IOutputSegment
writer
- 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()
IOutputSegment
String
.
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 IOutputSegment
public 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 |