Package org.htmlparser.lexer
Class PageAttribute
java.lang.Object
org.htmlparser.Attribute
org.htmlparser.lexer.PageAttribute
- All Implemented Interfaces:
Serializable
An attribute within a tag on a page.
This attribute is similar to Attribute but 'lazy loaded' from the
Page
by providing the page and cursor offsets
into the page for the name and value. This is done for speed, since
if the name and value are not needed we can avoid the cost and memory
overhead of creating the strings.
Thus the property getters, defer to the base class unless the property is null, in which case an attempt is made to read it from the underlying page. Optimizations in the predicates and length calculation defer the actual instantiation of strings until absolutely needed.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
The ending offset of the name within the page.protected int
The starting offset of the name within the page.protected Page
The page this attribute is extracted from.protected int
The ending offset of the name within the page.protected int
The starting offset of the value within the page.Fields inherited from class org.htmlparser.Attribute
mAssignment, mName, mQuote, mValue
-
Constructor Summary
ConstructorsConstructorDescriptionCreate an empty attribute.PageAttribute
(String value) Create a whitespace attribute with the value given.PageAttribute
(String name, String value) Create an attribute with the name and value given.PageAttribute
(String name, String value, char quote) Create an attribute with the name, value and quote given.PageAttribute
(String name, String assignment, String value) Create an attribute with the name, assignment string and value given.PageAttribute
(String name, String assignment, String value, char quote) Create an attribute with the name, assignment string, value and quote given.PageAttribute
(Page page, int name_start, int name_end, int value_start, int value_end, char quote) Create an attribute. -
Method Summary
Modifier and TypeMethodDescriptionGet the assignment string of this attribute.void
getAssignment
(StringBuffer buffer) Get the assignment string of this attribute.int
Get the length of the string value of this attribute.getName()
Get the name of this attribute.void
getName
(StringBuffer buffer) Get the name of this attribute.int
Get the ending position of the attribute name.int
Get the starting position of the attribute name.getPage()
Get the page this attribute is anchored to, if any.Get the raw value of the attribute.void
getRawValue
(StringBuffer buffer) Get the raw value of the attribute.getValue()
Get the value of the attribute.void
getValue
(StringBuffer buffer) Get the value of the attribute.int
Get the ending position of the attribute value.int
Get the starting position of the attribute value.boolean
isEmpty()
Predicate to determine if this attribute has an equals sign but no value.boolean
Predicate to determine if this attribute has no equals sign (or value).boolean
isValued()
Predicate to determine if this attribute has a value.boolean
Predicate to determine if this attribute is whitespace.void
setNameEndPosition
(int end) Set the ending position of the attribute name.void
setNameStartPosition
(int start) Set the starting position of the attribute name.void
Set the page this attribute is anchored to.void
setValueEndPosition
(int end) Set the ending position of the attribute value.void
setValueStartPosition
(int start) Set the starting position of the attribute value.Methods inherited from class org.htmlparser.Attribute
getQuote, getQuote, setAssignment, setName, setQuote, setRawValue, setValue, toString, toString
-
Field Details
-
mPage
The page this attribute is extracted from. -
mNameStart
protected int mNameStartThe starting offset of the name within the page. If negative, the name is considerednull
. -
mNameEnd
protected int mNameEndThe ending offset of the name within the page. -
mValueStart
protected int mValueStartThe starting offset of the value within the page. If negative, the value is considerednull
. -
mValueEnd
protected int mValueEndThe ending offset of the name within the page.
-
-
Constructor Details
-
PageAttribute
public PageAttribute(Page page, int name_start, int name_end, int value_start, int value_end, char quote) Create an attribute.- Parameters:
page
- The page containing the attribute.name_start
- The starting offset of the name within the page. If this is negative, the name is considered null.name_end
- The ending offset of the name within the page.value_start
- he starting offset of the value within the page. If this is negative, the value is considered null.value_end
- The ending offset of the value within the page.quote
- The quote, if any, surrounding the value of the attribute, (i.e. ' or "), or zero if none.
-
PageAttribute
Create an attribute with the name, assignment string, value and quote given. If the quote value is zero, assigns the value usingAttribute.setRawValue(java.lang.String)
which sets the quote character to a proper value if necessary.- Parameters:
name
- The name of this attribute.assignment
- The assignment string of this attribute.value
- The value of this attribute.quote
- The quote around the value of this attribute.
-
PageAttribute
Create an attribute with the name, value and quote given. Uses an equals sign as the assignment string if the value is notnull
, and callsAttribute.setRawValue(java.lang.String)
to get the correct quoting ifquote
is zero.- Parameters:
name
- The name of this attribute.value
- The value of this attribute.quote
- The quote around the value of this attribute.
-
PageAttribute
Create a whitespace attribute with the value given.- Parameters:
value
- The value of this attribute.- Throws:
IllegalArgumentException
- if the value contains other than whitespace. To set a real value usePageAttribute(String,String)
.
-
PageAttribute
Create an attribute with the name and value given. Uses an equals sign as the assignment string if the value is notnull
, and callsAttribute.setRawValue(java.lang.String)
to get the correct quoting.- Parameters:
name
- The name of this attribute.value
- The value of this attribute.
-
PageAttribute
Create an attribute with the name, assignment string and value given. CallsAttribute.setRawValue(java.lang.String)
to get the correct quoting.- Parameters:
name
- The name of this attribute.assignment
- The assignment string of this attribute.value
- The value of this attribute.
-
PageAttribute
public PageAttribute()Create an empty attribute. This will provide "" from theAttribute.toString()
andAttribute.toString(StringBuffer)
methods.
-
-
Method Details
-
getName
Get the name of this attribute. The part before the equals sign, or the contents of the stand-alone attribute. -
getName
Get the name of this attribute. -
getAssignment
Get the assignment string of this attribute. This is usually just an equals sign, but in poorly formed attributes it can include whitespace on either or both sides of an equals sign.- Overrides:
getAssignment
in classAttribute
- Returns:
- The assignment string.
- See Also:
-
getAssignment
Get the assignment string of this attribute.- Overrides:
getAssignment
in classAttribute
- Parameters:
buffer
- The buffer to place the assignment string in.- See Also:
-
getValue
Get the value of the attribute. The part after the equals sign, or the text if it's just a whitepace 'attribute'. NOTE: This does not include any quotes that may have enclosed the value when it was read. To get the un-stripped value usegetRawValue()
. -
getValue
Get the value of the attribute. -
getRawValue
Get the raw value of the attribute. The part after the equals sign, or the text if it's just a whitepace 'attribute'. This includes the quotes around the value if any.- Overrides:
getRawValue
in classAttribute
- Returns:
- The value, or
null
if it's a stand-alone attribute, or the text if it's just a whitepace 'attribute'. - See Also:
-
getRawValue
Get the raw value of the attribute. The part after the equals sign, or the text if it's just a whitepace 'attribute'. This includes the quotes around the value if any.- Overrides:
getRawValue
in classAttribute
- Parameters:
buffer
- The string buffer to append the attribute value to.- See Also:
-
getPage
Get the page this attribute is anchored to, if any.- Returns:
- The page used to construct this attribute, or null if this is just a regular attribute.
-
setPage
Set the page this attribute is anchored to.- Parameters:
page
- The page to be used to construct this attribute. Note: If you set this you probably also want to uncache the property values by setting them to null.
-
getNameStartPosition
public int getNameStartPosition()Get the starting position of the attribute name.- Returns:
- The offset into the page at which the name begins.
-
setNameStartPosition
public void setNameStartPosition(int start) Set the starting position of the attribute name.- Parameters:
start
- The new offset into the page at which the name begins.
-
getNameEndPosition
public int getNameEndPosition()Get the ending position of the attribute name.- Returns:
- The offset into the page at which the name ends.
-
setNameEndPosition
public void setNameEndPosition(int end) Set the ending position of the attribute name.- Parameters:
end
- The new offset into the page at which the name ends.
-
getValueStartPosition
public int getValueStartPosition()Get the starting position of the attribute value.- Returns:
- The offset into the page at which the value begins.
-
setValueStartPosition
public void setValueStartPosition(int start) Set the starting position of the attribute value.- Parameters:
start
- The new offset into the page at which the value begins.
-
getValueEndPosition
public int getValueEndPosition()Get the ending position of the attribute value.- Returns:
- The offset into the page at which the value ends.
-
setValueEndPosition
public void setValueEndPosition(int end) Set the ending position of the attribute value.- Parameters:
end
- The new offset into the page at which the value ends.
-
isWhitespace
public boolean isWhitespace()Predicate to determine if this attribute is whitespace.- Overrides:
isWhitespace
in classAttribute
- Returns:
true
if this attribute is whitespace,false
if it is a real attribute.
-
isStandAlone
public boolean isStandAlone()Predicate to determine if this attribute has no equals sign (or value).- Overrides:
isStandAlone
in classAttribute
- Returns:
true
if this attribute is a standalone attribute.false
if has an equals sign.
-
isEmpty
public boolean isEmpty()Predicate to determine if this attribute has an equals sign but no value. -
isValued
public boolean isValued()Predicate to determine if this attribute has a value. -
getLength
public int getLength()Get the length of the string value of this attribute.
-