info.bliki.wiki.tags.util
Class NodeAttribute

java.lang.Object
  extended by info.bliki.wiki.tags.util.Attribute
      extended by info.bliki.wiki.tags.util.NodeAttribute
All Implemented Interfaces:
java.io.Serializable

public class NodeAttribute
extends Attribute

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:
Serialized Form

Field Summary
protected  int mNameEnd
          The ending offset of the name within the page.
protected  int mNameStart
          The starting offset of the name within the page.
protected  char[] mText
          The page this attribute is extracted from.
protected  int mValueEnd
          The ending offset of the name within the page.
protected  int mValueStart
          The starting offset of the value within the page.
 
Fields inherited from class info.bliki.wiki.tags.util.Attribute
mAssignment, mName, mQuote, mValue
 
Constructor Summary
NodeAttribute()
          Create an empty attribute.
NodeAttribute(char[] text, int name_start, int name_end, int value_start, int value_end, char quote)
          Create an attribute.
NodeAttribute(java.lang.String value)
          Create a whitespace attribute with the value given.
NodeAttribute(java.lang.String name, java.lang.String value)
          Create an attribute with the name and value given.
NodeAttribute(java.lang.String name, java.lang.String value, char quote)
          Create an attribute with the name, value and quote given.
NodeAttribute(java.lang.String name, java.lang.String assignment, java.lang.String value)
          Create an attribute with the name, assignment string and value given.
NodeAttribute(java.lang.String name, java.lang.String assignment, java.lang.String value, char quote)
          Create an attribute with the name, assignment string, value and quote given.
 
Method Summary
 java.lang.String getAssignment(java.lang.String text)
          Get the assignment string of this attribute.
 void getAssignment(java.lang.StringBuilder buffer, java.lang.String text)
          Get the assignment string of this attribute.
 int getLength()
          Get the length of the string value of this attribute.
 java.lang.String getName()
          Get the name of this attribute.
 void getName(java.lang.StringBuilder buffer, java.lang.String text)
          Get the name of this attribute.
 int getNameEndPosition()
          Get the ending position of the attribute name.
 int getNameStartPosition()
          Get the starting position of the attribute name.
 java.lang.String getRawValue()
          Get the raw value of the attribute.
 void getRawValue(java.lang.StringBuilder buffer, java.lang.String text)
          Get the raw value of the attribute.
 java.lang.String getValue(java.lang.String text)
          Get the value of the attribute.
 void getValue(java.lang.StringBuilder buffer, java.lang.String text)
          Get the value of the attribute.
 int getValueEndPosition()
          Get the ending position of the attribute value.
 int getValueStartPosition()
          Get the starting position of the attribute value.
 boolean isEmpty()
          Predicate to determine if this attribute has an equals sign but no value.
 boolean isStandAlone()
          Predicate to determine if this attribute has no equals sign (or value).
 boolean isValued()
          Predicate to determine if this attribute has a value.
 boolean isWhitespace()
          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 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 info.bliki.wiki.tags.util.Attribute
getAssignment, getAssignment, getName, getQuote, getQuote, getRawValue, getValue, getValue, setAssignment, setName, setQuote, setRawValue, setValue, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mText

protected char[] mText
The page this attribute is extracted from.


mNameStart

protected int mNameStart
The starting offset of the name within the page. If negative, the name is considered null.


mNameEnd

protected int mNameEnd
The ending offset of the name within the page.


mValueStart

protected int mValueStart
The starting offset of the value within the page. If negative, the value is considered null.


mValueEnd

protected int mValueEnd
The ending offset of the name within the page.

Constructor Detail

NodeAttribute

public NodeAttribute(char[] text,
                     int name_start,
                     int name_end,
                     int value_start,
                     int value_end,
                     char quote)
Create an attribute.

Parameters:
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.

NodeAttribute

public NodeAttribute(java.lang.String name,
                     java.lang.String assignment,
                     java.lang.String value,
                     char quote)
Create an attribute with the name, assignment string, value and quote given. If the quote value is zero, assigns the value using Attribute.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.

NodeAttribute

public NodeAttribute(java.lang.String name,
                     java.lang.String value,
                     char quote)
Create an attribute with the name, value and quote given. Uses an equals sign as the assignment string if the value is not null, and calls Attribute.setRawValue(java.lang.String) to get the correct quoting if quote is zero.

Parameters:
name - The name of this attribute.
value - The value of this attribute.
quote - The quote around the value of this attribute.

NodeAttribute

public NodeAttribute(java.lang.String value)
              throws java.lang.IllegalArgumentException
Create a whitespace attribute with the value given.

Parameters:
value - The value of this attribute.
Throws:
java.lang.IllegalArgumentException - if the value contains other than whitespace. To set a real value use #PageAttribute(String,String).

NodeAttribute

public NodeAttribute(java.lang.String name,
                     java.lang.String value)
Create an attribute with the name and value given. Uses an equals sign as the assignment string if the value is not null, and calls Attribute.setRawValue(java.lang.String) to get the correct quoting.

Parameters:
name - The name of this attribute.
value - The value of this attribute.

NodeAttribute

public NodeAttribute(java.lang.String name,
                     java.lang.String assignment,
                     java.lang.String value)
Create an attribute with the name, assignment string and value given. Calls Attribute.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.

NodeAttribute

public NodeAttribute()
Create an empty attribute. This will provide "" from the Attribute.toString() and Attribute.toString(StringBuilder) methods.

Method Detail

getName

public java.lang.String getName()
Get the name of this attribute. The part before the equals sign, or the contents of the stand-alone attribute.

Overrides:
getName in class Attribute
Returns:
The name, or null if it's just a whitepace 'attribute'.
See Also:
Attribute.setName(java.lang.String)

getName

public void getName(java.lang.StringBuilder buffer,
                    java.lang.String text)
Get the name of this attribute.

Parameters:
buffer - The buffer to place the name in.
See Also:
getName()

getAssignment

public java.lang.String getAssignment(java.lang.String text)
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.

Returns:
The assignment string.

getAssignment

public void getAssignment(java.lang.StringBuilder buffer,
                          java.lang.String text)
Get the assignment string of this attribute.

Parameters:
buffer - The buffer to place the assignment string in.
See Also:
Attribute.getAssignment()

getValue

public java.lang.String getValue(java.lang.String text)
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 use getRawValue().

Returns:
The value, or null if it's a stand-alone or empty attribute, or the text if it's just a whitepace 'attribute'.

getValue

public void getValue(java.lang.StringBuilder buffer,
                     java.lang.String text)
Get the value of the attribute.

Parameters:
buffer - The buffer to place the value in.
See Also:
Attribute.getValue()

getRawValue

public java.lang.String 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 class Attribute
Returns:
The value, or null if it's a stand-alone attribute, or the text if it's just a whitepace 'attribute'.
See Also:
Attribute.setRawValue(java.lang.String)

getRawValue

public void getRawValue(java.lang.StringBuilder buffer,
                        java.lang.String text)
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.

Parameters:
buffer - The string buffer to append the attribute value to.
See Also:
getRawValue()

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 class Attribute
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 class Attribute
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.

Overrides:
isEmpty in class Attribute
Returns:
true if this attribute is an empty attribute. false if has an equals sign and a value.

isValued

public boolean isValued()
Predicate to determine if this attribute has a value.

Overrides:
isValued in class Attribute
Returns:
true if this attribute has a value. false if it is empty or standalone.

getLength

public int getLength()
Get the length of the string value of this attribute.

Overrides:
getLength in class Attribute
Returns:
The number of characters required to express this attribute.


Copyright © 2012 Java Wikipedia API (Bliki engine). All Rights Reserved.