JDOM
2.0.5

org.jdom2
Class SlimJDOMFactory

java.lang.Object
  extended by org.jdom2.DefaultJDOMFactory
      extended by org.jdom2.SlimJDOMFactory
All Implemented Interfaces:
JDOMFactory

public class SlimJDOMFactory
extends DefaultJDOMFactory

This JDOMFactory instance reduces the amount of memory used by JDOM content. It does this by reusing String instances instead of using new (but equals()) instances. It uses the StringBin class to provide a String cache.

Author:
Rolf Lear
See Also:
StringBin

Constructor Summary
SlimJDOMFactory()
           
SlimJDOMFactory(boolean cachetext)
          Construct a SlimJDOMFactory which will optionally cache Text/CDATA/Comment/Attribute values.
 
Method Summary
 Attribute attribute(java.lang.String name, java.lang.String value)
          This will create a new Attribute with the specified (local) name and value, and does not place the attribute in a Namespace.
 Attribute attribute(java.lang.String name, java.lang.String value, AttributeType type)
          This will create a new Attribute with the specified (local) name, value and type, and does not place the attribute in a Namespace.
 Attribute attribute(java.lang.String name, java.lang.String value, AttributeType type, Namespace namespace)
          This will create a new Attribute with the specified (local) name, value, and type, and in the provided Namespace.
 Attribute attribute(java.lang.String name, java.lang.String value, int type)
          Deprecated. 
 Attribute attribute(java.lang.String name, java.lang.String value, int type, Namespace namespace)
          Deprecated. 
 Attribute attribute(java.lang.String name, java.lang.String value, Namespace namespace)
           This will create a new Attribute with the specified (local) name and value, and in the provided Namespace.
 CDATA cdata(int line, int col, java.lang.String str)
          This creates the CDATA with the supplied text.
 void clearCache()
          Reset any Cached String instance data from this SlimJDOMFaxctory cache.
 Comment comment(int line, int col, java.lang.String text)
          This creates the comment with the supplied text.
 DocType docType(int line, int col, java.lang.String elementName)
          This will create the DocType with the specified element name
 DocType docType(int line, int col, java.lang.String elementName, java.lang.String systemID)
          This will create the DocType with the specified element name and reference to an external DTD.
 DocType docType(int line, int col, java.lang.String elementName, java.lang.String publicID, java.lang.String systemID)
          This will create the DocType with the specified element name and a reference to an external DTD.
 Element element(int line, int col, java.lang.String name)
          This will create an Element in no Namespace.
 Element element(int line, int col, java.lang.String name, Namespace namespace)
          This will create a new Element with the supplied (local) name, and define the Namespace to be used.
 Element element(int line, int col, java.lang.String name, java.lang.String uri)
          This will create a new Element with the supplied (local) name, and specifies the URI of the Namespace the Element should be in, resulting it being unprefixed (in the default namespace).
 Element element(int line, int col, java.lang.String name, java.lang.String prefix, java.lang.String uri)
          This will create a new Element with the supplied (local) name, and specifies the prefix and URI of the Namespace the Element should be in.
 EntityRef entityRef(int line, int col, java.lang.String name)
          This will create a new EntityRef with the supplied name.
 EntityRef entityRef(int line, int col, java.lang.String name, java.lang.String systemID)
          This will create a new EntityRef with the supplied name and system ID.
 EntityRef entityRef(int line, int col, java.lang.String name, java.lang.String publicID, java.lang.String systemID)
          This will create a new EntityRef with the supplied name, public ID, and system ID.
 ProcessingInstruction processingInstruction(int line, int col, java.lang.String target)
          This will create a new ProcessingInstruction with the specified target and no data.
 ProcessingInstruction processingInstruction(int line, int col, java.lang.String target, java.util.Map<java.lang.String,java.lang.String> data)
          This will create a new ProcessingInstruction with the specified target and data.
 ProcessingInstruction processingInstruction(int line, int col, java.lang.String target, java.lang.String data)
          This will create a new ProcessingInstruction with the specified target and data.
 Text text(int line, int col, java.lang.String str)
          This creates the Text with the supplied text.
 
Methods inherited from class org.jdom2.DefaultJDOMFactory
addContent, addNamespaceDeclaration, cdata, comment, docType, docType, docType, document, document, document, element, element, element, element, entityRef, entityRef, entityRef, processingInstruction, processingInstruction, processingInstruction, setAttribute, setRoot, text
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SlimJDOMFactory

public SlimJDOMFactory()

SlimJDOMFactory

public SlimJDOMFactory(boolean cachetext)
Construct a SlimJDOMFactory which will optionally cache Text/CDATA/Comment/Attribute values. Caching these values is recommended because often XML documents have many instances of the same Text values (especially whitespace sequences...)

Parameters:
cachetext - should be true if you want the content of CDATA, Text, Comment and Attribute values cached as well.
Method Detail

clearCache

public void clearCache()
Reset any Cached String instance data from this SlimJDOMFaxctory cache.


attribute

public Attribute attribute(java.lang.String name,
                           java.lang.String value,
                           Namespace namespace)
Description copied from interface: JDOMFactory

This will create a new Attribute with the specified (local) name and value, and in the provided Namespace.

Specified by:
attribute in interface JDOMFactory
Overrides:
attribute in class DefaultJDOMFactory
Parameters:
name - String name of Attribute.
value - String value for new attribute.
namespace - Namespace of the new Attribute
Returns:
the created Attribute instance

attribute

@Deprecated
public Attribute attribute(java.lang.String name,
                                      java.lang.String value,
                                      int type,
                                      Namespace namespace)
Deprecated. 

Description copied from interface: JDOMFactory
This will create a new Attribute with the specified (local) name, value, and type, and in the provided Namespace.

Specified by:
attribute in interface JDOMFactory
Overrides:
attribute in class DefaultJDOMFactory
Parameters:
name - String name of Attribute.
value - String value for new attribute.
type - int type for new attribute.
namespace - Namespace namespace for new attribute.
Returns:
the created Attribute instance

attribute

public Attribute attribute(java.lang.String name,
                           java.lang.String value,
                           AttributeType type,
                           Namespace namespace)
Description copied from interface: JDOMFactory
This will create a new Attribute with the specified (local) name, value, and type, and in the provided Namespace.

Specified by:
attribute in interface JDOMFactory
Overrides:
attribute in class DefaultJDOMFactory
Parameters:
name - String name of Attribute.
value - String value for new attribute.
type - AttributeType type for new attribute.
namespace - Namespace namespace for new attribute.
Returns:
the created Attribute instance

attribute

public Attribute attribute(java.lang.String name,
                           java.lang.String value)
Description copied from interface: JDOMFactory
This will create a new Attribute with the specified (local) name and value, and does not place the attribute in a Namespace.

Note: This actually explicitly puts the Attribute in the "empty" Namespace (Namespace.NO_NAMESPACE).

Specified by:
attribute in interface JDOMFactory
Overrides:
attribute in class DefaultJDOMFactory
Parameters:
name - String name of Attribute.
value - String value for new attribute.
Returns:
the created Attribute instance

attribute

@Deprecated
public Attribute attribute(java.lang.String name,
                                      java.lang.String value,
                                      int type)
Deprecated. 

Description copied from interface: JDOMFactory
This will create a new Attribute with the specified (local) name, value and type, and does not place the attribute in a Namespace.

Note: This actually explicitly puts the Attribute in the "empty" Namespace (Namespace.NO_NAMESPACE).

Specified by:
attribute in interface JDOMFactory
Overrides:
attribute in class DefaultJDOMFactory
Parameters:
name - String name of Attribute.
value - String value for new attribute.
type - int type for new attribute.
Returns:
the created Attribute instance

attribute

public Attribute attribute(java.lang.String name,
                           java.lang.String value,
                           AttributeType type)
Description copied from interface: JDOMFactory
This will create a new Attribute with the specified (local) name, value and type, and does not place the attribute in a Namespace.

Note: This actually explicitly puts the Attribute in the "empty" Namespace (Namespace.NO_NAMESPACE).

Specified by:
attribute in interface JDOMFactory
Overrides:
attribute in class DefaultJDOMFactory
Parameters:
name - String name of Attribute.
value - String value for new attribute.
type - AttributeType type for new attribute.
Returns:
the created Attribute instance

cdata

public CDATA cdata(int line,
                   int col,
                   java.lang.String str)
Description copied from interface: JDOMFactory
This creates the CDATA with the supplied text.

Specified by:
cdata in interface JDOMFactory
Overrides:
cdata in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
str - String content of CDATA.
Returns:
the created CDATA instance

text

public Text text(int line,
                 int col,
                 java.lang.String str)
Description copied from interface: JDOMFactory
This creates the Text with the supplied text.

Specified by:
text in interface JDOMFactory
Overrides:
text in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
str - String content of Text.
Returns:
the created Text instance

comment

public Comment comment(int line,
                       int col,
                       java.lang.String text)
Description copied from interface: JDOMFactory
This creates the comment with the supplied text.

Specified by:
comment in interface JDOMFactory
Overrides:
comment in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
text - String content of comment.
Returns:
the created Comment instance

docType

public DocType docType(int line,
                       int col,
                       java.lang.String elementName,
                       java.lang.String publicID,
                       java.lang.String systemID)
Description copied from interface: JDOMFactory
This will create the DocType with the specified element name and a reference to an external DTD.

Specified by:
docType in interface JDOMFactory
Overrides:
docType in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
elementName - String name of element being constrained.
publicID - String public ID of referenced DTD
systemID - String system ID of referenced DTD
Returns:
the created DocType instance

docType

public DocType docType(int line,
                       int col,
                       java.lang.String elementName,
                       java.lang.String systemID)
Description copied from interface: JDOMFactory
This will create the DocType with the specified element name and reference to an external DTD.

Specified by:
docType in interface JDOMFactory
Overrides:
docType in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
elementName - String name of element being constrained.
systemID - String system ID of referenced DTD
Returns:
the created DocType instance

docType

public DocType docType(int line,
                       int col,
                       java.lang.String elementName)
Description copied from interface: JDOMFactory
This will create the DocType with the specified element name

Specified by:
docType in interface JDOMFactory
Overrides:
docType in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
elementName - String name of element being constrained.
Returns:
the created DocType instance

element

public Element element(int line,
                       int col,
                       java.lang.String name,
                       Namespace namespace)
Description copied from interface: JDOMFactory
This will create a new Element with the supplied (local) name, and define the Namespace to be used.

Specified by:
element in interface JDOMFactory
Overrides:
element in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
name - String name of element.
namespace - Namespace to put element in.
Returns:
the created Element instance

element

public Element element(int line,
                       int col,
                       java.lang.String name)
Description copied from interface: JDOMFactory
This will create an Element in no Namespace.

Specified by:
element in interface JDOMFactory
Overrides:
element in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
name - String name of element.
Returns:
the created Element instance

element

public Element element(int line,
                       int col,
                       java.lang.String name,
                       java.lang.String uri)
Description copied from interface: JDOMFactory
This will create a new Element with the supplied (local) name, and specifies the URI of the Namespace the Element should be in, resulting it being unprefixed (in the default namespace).

Specified by:
element in interface JDOMFactory
Overrides:
element in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
name - String name of element.
uri - String URI for Namespace element should be in.
Returns:
the created Element instance

element

public Element element(int line,
                       int col,
                       java.lang.String name,
                       java.lang.String prefix,
                       java.lang.String uri)
Description copied from interface: JDOMFactory
This will create a new Element with the supplied (local) name, and specifies the prefix and URI of the Namespace the Element should be in.

Specified by:
element in interface JDOMFactory
Overrides:
element in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
name - String name of element.
prefix - the NamespacePrefic to use for this Element
uri - String URI for Namespace element should be in.
Returns:
the created Element instance

processingInstruction

public ProcessingInstruction processingInstruction(int line,
                                                   int col,
                                                   java.lang.String target,
                                                   java.util.Map<java.lang.String,java.lang.String> data)
Description copied from interface: JDOMFactory
This will create a new ProcessingInstruction with the specified target and data.

Specified by:
processingInstruction in interface JDOMFactory
Overrides:
processingInstruction in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
target - String target of PI.
data - Map data for PI, in name/value pairs
Returns:
the created ProcessingInstruction instance

processingInstruction

public ProcessingInstruction processingInstruction(int line,
                                                   int col,
                                                   java.lang.String target,
                                                   java.lang.String data)
Description copied from interface: JDOMFactory
This will create a new ProcessingInstruction with the specified target and data.

Specified by:
processingInstruction in interface JDOMFactory
Overrides:
processingInstruction in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
target - String target of PI.
data - String data for PI.
Returns:
the created ProcessingInstruction instance

processingInstruction

public ProcessingInstruction processingInstruction(int line,
                                                   int col,
                                                   java.lang.String target)
Description copied from interface: JDOMFactory
This will create a new ProcessingInstruction with the specified target and no data.

Specified by:
processingInstruction in interface JDOMFactory
Overrides:
processingInstruction in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
target - String target of PI.
Returns:
the created ProcessingInstruction instance

entityRef

public EntityRef entityRef(int line,
                           int col,
                           java.lang.String name)
Description copied from interface: JDOMFactory
This will create a new EntityRef with the supplied name.

Specified by:
entityRef in interface JDOMFactory
Overrides:
entityRef in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
name - String name of element.
Returns:
the created EntityRef instance

entityRef

public EntityRef entityRef(int line,
                           int col,
                           java.lang.String name,
                           java.lang.String publicID,
                           java.lang.String systemID)
Description copied from interface: JDOMFactory
This will create a new EntityRef with the supplied name, public ID, and system ID.

Specified by:
entityRef in interface JDOMFactory
Overrides:
entityRef in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
name - String name of element.
publicID - String public ID of element.
systemID - String system ID of element.
Returns:
the created EntityRef instance

entityRef

public EntityRef entityRef(int line,
                           int col,
                           java.lang.String name,
                           java.lang.String systemID)
Description copied from interface: JDOMFactory
This will create a new EntityRef with the supplied name and system ID.

Specified by:
entityRef in interface JDOMFactory
Overrides:
entityRef in class DefaultJDOMFactory
Parameters:
line - The line on which this content begins.
col - The column on the line at which this content begins.
name - String name of element.
systemID - String system ID of element.
Returns:
the created EntityRef instance

JDOM
2.0.5

Copyright � 2013 Jason Hunter, Brett McLaughlin. All Rights Reserved.