All Downloads are FREE. Search and download functionalities are using the official Maven repository.

doc.api.au.id.jericho.lib.html.AttributesOutputSegment.html Maven / Gradle / Ivy

Go to download

Jericho HTML Parser is a simple but powerful java library allowing analysis and manipulation of parts of an HTML document, including some common server-side tags, while reproducing verbatim any unrecognised or invalid HTML. It also provides high-level HTML form manipulation functions.

There is a newer version: 2.3
Show newest version






AttributesOutputSegment (Jericho HTML Parser 1.5-dev1)

















au.id.jericho.lib.html
Class AttributesOutputSegment

java.lang.Object
  extended byau.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.






© 2015 - 2024 Weber Informatics LLC | Privacy Policy