doc.api.au.id.jericho.lib.html.AttributesOutputSegment.html Maven / Gradle / Ivy
AttributesOutputSegment (Jericho HTML Parser 1.5-dev1)
Package
Class
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
au.id.jericho.lib.html
Class AttributesOutputSegment
java.lang.Object
au.id.jericho.lib.html.AttributesOutputSegment
- All Implemented Interfaces:
- IOutputSegment
- public class AttributesOutputSegment
- extends java.lang.Object
- implements IOutputSegment
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.
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.add(bodyAttributesOutputSegment);
String htmlDocumentWithGreenBackground=outputDocument.toString();
- See Also:
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
AttributesOutputSegment
public AttributesOutputSegment(Attributes attributes,
boolean convertNamesToLowerCase)
- Constructs a new
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)
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)
- 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()
- Description copied from interface:
IOutputSegment
- Returns the character position in the
OutputDocument
where this segment begins.
- Specified by:
getBegin
in interface IOutputSegment
- Returns:
- the character position in the
OutputDocument
where this segment begins.
getEnd
public int getEnd()
- Description copied from interface:
IOutputSegment
- Returns the character position in the
OutputDocument
where this segment ends.
- Specified by:
getEnd
in interface IOutputSegment
- Returns:
- the character position in the
OutputDocument
where this segment ends.
getMap
public java.util.Map getMap()
- Returns the
Map
containing the name/value entries to be output.
- Returns:
- the
Map
containing the name/value entries to be output.
output
public void output(java.io.Writer writer)
throws java.io.IOException
- Outputs 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:
output
in interface IOutputSegment
- Parameters:
writer
- the Writer
to which the output is to be sent.
- Throws:
java.io.IOException
- if an I/O exception occurs.- See Also:
Attributes.generateHTML(Map attributesMap)
toString
public java.lang.String toString()
- Description copied from interface:
IOutputSegment
- Returns the content of this output segment as a
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.
- Specified by:
toString
in interface IOutputSegment
getDebugInfo
public java.lang.String getDebugInfo()
- Description copied from interface:
IOutputSegment
- Returns a string representation of this object useful for debugging purposes.
- Specified by:
getDebugInfo
in interface IOutputSegment
- Returns:
- a string representation of this object useful for debugging purposes.
Package
Class
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD