Class ProcessingInstruction

java.lang.Object
  extended by Content
      extended by ProcessingInstruction
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable
public class ProcessingInstruction
extends Content

An XML processing instruction. Methods allow the user to obtain the target of the PI as well as its data. The data can always be accessed as a String or, if the data appears akin to an attribute list, can be retrieved as name/value pairs.

See Also:
Serialized Form

Field Summary
private static java.lang.StringCVS_ID
           
protected  java.util.MapmapData
          The data for the PI in name/value pairs
protected  java.lang.StringrawData
          The data for the PI as a String
protected  java.lang.Stringtarget
          The target of the PI
 
Fields inherited from class Content
parent
 
Constructor Summary
protected ProcessingInstruction()
          Default, no-args constructor for implementations to use if needed.
 ProcessingInstruction(java.lang.String target, java.util.Map data)
          This will create a new ProcessingInstruction with the specified target and data.
 ProcessingInstruction(java.lang.String target, java.lang.String data)
          This will create a new ProcessingInstruction with the specified target and data.
 
Method Summary
 java.lang.Objectclone()
          This will return a clone of this ProcessingInstruction.
private static int[]extractQuotedString(java.lang.String rawData)
          This is a helper routine, only used by parseData, to extract a quoted String from the input parameter, rawData.
 java.lang.StringgetData()
          This will return the raw data from all instructions.
 java.util.ListgetPseudoAttributeNames()
          This will return a List containing the names of the "attribute" style pieces of name/value pairs in this PI's data.
 java.lang.StringgetPseudoAttributeValue(java.lang.String name)
          This will return the value for a specific name/value pair on the PI.
 java.lang.StringgetTarget()
          This will retrieve the target of the PI.
 java.lang.StringgetValue()
          Returns the XPath 1.0 string value of this element, which is the data of this PI.
private  java.util.MapparseData(java.lang.String rawData)
          This will parse and load the instructions for the PI.
 booleanremovePseudoAttribute(java.lang.String name)
          This will remove the pseudo attribute with the specified name.
 ProcessingInstructionsetData(java.util.Map data)
          This will set the name/value pairs within the passed Map as the pairs for the data of this PI.
 ProcessingInstructionsetData(java.lang.String data)
          This will set the raw data for the PI.
 ProcessingInstructionsetPseudoAttribute(java.lang.String name, java.lang.String value)
          This will set a pseudo attribute with the given name and value.
 ProcessingInstructionsetTarget(java.lang.String newTarget)
          This will set the target for the PI.
 java.lang.StringtoString()
          This returns a String representation of the ProcessingInstruction, suitable for debugging.
private  java.lang.StringtoString(java.util.Map mapData)
          This will convert the Map to a string representation.
 
Methods inherited from class Content
detach, equals, getDocument, getParent, getParentElement, hashCode, setParent
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

CVS_ID

private static final java.lang.String CVS_ID
See Also:
Constant Field Values

target

protected java.lang.String target
The target of the PI

rawData

protected java.lang.String rawData
The data for the PI as a String

mapData

protected java.util.Map mapData
The data for the PI in name/value pairs

Constructor Detail

ProcessingInstruction

protected ProcessingInstruction()
Default, no-args constructor for implementations to use if needed.

ProcessingInstruction

public ProcessingInstruction(java.lang.String target,
                             java.util.Map data)
This will create a new ProcessingInstruction with the specified target and data.

Parameters:
target - String target of PI.
data - Map data for PI, in name/value pairs
Throws:
IllegalTargetException - if the given target is illegal as a processing instruction name.

ProcessingInstruction

public ProcessingInstruction(java.lang.String target,
                             java.lang.String data)
This will create a new ProcessingInstruction with the specified target and data.

Parameters:
target - String target of PI.
data - String data for PI.
Throws:
IllegalTargetException - if the given target is illegal as a processing instruction name.
Method Detail

setTarget

public ProcessingInstruction setTarget(java.lang.String newTarget)
This will set the target for the PI.

Parameters:
newTarget - String new target of PI.
Returns:
ProcessingInstruction - this PI modified.

getValue

public java.lang.String getValue()
Returns the XPath 1.0 string value of this element, which is the data of this PI.

Specified by:
getValue in class Content
Returns:
the data of this PI

getTarget

public java.lang.String getTarget()
This will retrieve the target of the PI.

Returns:
String - target of PI.

getData

public java.lang.String getData()
This will return the raw data from all instructions.

Returns:
String - data of PI.

getPseudoAttributeNames

public java.util.List getPseudoAttributeNames()
This will return a List containing the names of the "attribute" style pieces of name/value pairs in this PI's data.

Returns:
List - the List containing the "attribute" names.

setData

public ProcessingInstruction setData(java.lang.String data)
This will set the raw data for the PI.

Parameters:
data - String data of PI.
Returns:
ProcessingInstruction - this PI modified.

setData

public ProcessingInstruction setData(java.util.Map data)
This will set the name/value pairs within the passed Map as the pairs for the data of this PI. The keys should be the pair name and the values should be the pair values.

Parameters:
data - new map data to use
Returns:
ProcessingInstruction - modified PI.

getPseudoAttributeValue

public java.lang.String getPseudoAttributeValue(java.lang.String name)
This will return the value for a specific name/value pair on the PI. If no such pair is found for this PI, null is returned.

Parameters:
name - String name of name/value pair to lookup value for.
Returns:
String - value of name/value pair.

setPseudoAttribute

public ProcessingInstruction setPseudoAttribute(java.lang.String name,
                                                java.lang.String value)
This will set a pseudo attribute with the given name and value. If the PI data is not already in a pseudo-attribute format, this will replace the existing data.

Parameters:
name - String name of pair.
value - String value for pair.
Returns:
ProcessingInstruction this PI modified.

removePseudoAttribute

public boolean removePseudoAttribute(java.lang.String name)
This will remove the pseudo attribute with the specified name.

Parameters:
name - name of pseudo attribute to remove
Returns:
boolean - whether the requested instruction was removed.

toString

private java.lang.String toString(java.util.Map mapData)
This will convert the Map to a string representation.

Parameters:
mapData - Map PI data to convert
Returns:
a string representation of the Map as appropriate for a PI

parseData

private java.util.Map parseData(java.lang.String rawData)
This will parse and load the instructions for the PI. This is separated to allow it to occur once and then be reused.

extractQuotedString

private static int[] extractQuotedString(java.lang.String rawData)
This is a helper routine, only used by parseData, to extract a quoted String from the input parameter, rawData. A quoted string can use either single or double quotes, but they must match up. A singly quoted string can contain an unbalanced amount of double quotes, or vice versa. For example, the String "JDOM's the best" is legal as is 'JDOM"s the best'.

Parameters:
rawData - the input string from which a quoted string is to be extracted.
Returns:
the first quoted string encountered in the input data. If no quoted string is found, then the empty string, "", is returned.
See Also:
parseData(java.lang.String)

toString

public java.lang.String toString()
This returns a String representation of the ProcessingInstruction, suitable for debugging. If the XML representation of the ProcessingInstruction is desired, output.XMLOutputter#outputString(ProcessingInstruction) should be used.

Overrides:
toString in class java.lang.Object
Returns:
String - information about the ProcessingInstruction

clone

public java.lang.Object clone()
This will return a clone of this ProcessingInstruction.

Overrides:
clone in class Content
Returns:
Object - clone of this ProcessingInstruction.