|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.xml.dtm.DTMManager
A DTMManager instance can be used to create DTM and DTMIterator objects, and manage the DTM objects in the system.
The system property that determines which Factory implementation to create is named "org.apache.xml.utils.DTMFactory". This property names a concrete subclass of the DTMFactory abstract class. If the property is not defined, a platform default is be used.
An instance of this class
Note: this class is incomplete right now. It will be pretty much modeled after javax.xml.transform.TransformerFactory in terms of its factory support.
State: In progress!!
Field Summary | |
private static boolean |
debug
Temp debug code - this will be removed after we test everything |
private static String |
defaultPropName
The default property name to load the manager. |
private static String |
foundFactory
Avoid reading all the files when the findFactory method is called the second time (cache the result of finding the default impl). |
static int |
IDENT_DTM_DEFAULT
When this bitmask is ANDed with a DTM node handle number, the result is the DTM's document identity number. |
static int |
IDENT_DTM_NODE_BITS
This value, set at compile time, controls how many bits of the DTM node identifier numbers are used to identify a node within a document, and thus sets the maximum number of nodes per document. |
static int |
IDENT_MAX_DTMS
This is the maximum number of DTMs available. |
static int |
IDENT_NODE_DEFAULT
When this bitmask is ANDed with a DTM node handle number, the result is the low bits of the node's index number within that DTM. |
static boolean |
m_incremental
|
protected XMLStringFactory |
m_xsf
Factory for creating XMLString objects. |
Constructor Summary | |
protected |
DTMManager()
Default constructor is protected on purpose. |
Method Summary | |
abstract DTM |
createDocumentFragment()
Creates a DTM representing an empty DocumentFragment object. |
abstract DTMIterator |
createDTMIterator(int node)
Create a new DTMIterator that holds exactly one node. |
abstract DTMIterator |
createDTMIterator(int whatToShow,
DTMFilter filter,
boolean entityReferenceExpansion)
Create a new DTMIterator based only on a whatToShow
and a DTMFilter. |
abstract DTMIterator |
createDTMIterator(Object xpathCompiler,
int pos)
Create a new DTMIterator based on an XPath
UnionExpr. |
abstract DTMIterator |
createDTMIterator(String xpathString,
PrefixResolver presolver)
Create a new DTMIterator based on an XPath
UnionExpr. |
private static String |
findFactory(String factoryId,
String defaultFactory)
Private implementation method - will find the implementation class in the specified order. |
abstract DTM |
getDTM(int nodeHandle)
Get the instance of DTM that "owns" a node handle. |
abstract DTM |
getDTM(javax.xml.transform.Source source,
boolean unique,
DTMWSFilter whiteSpaceFilter,
boolean incremental,
boolean doIndexing)
Get an instance of a DTM, loaded with the content from the specified source. |
abstract int |
getDTMHandleFromNode(org.w3c.dom.Node node)
Given a W3C DOM node, try and return a DTM handle. |
abstract int |
getDTMIdentity(DTM dtm)
%TBD% Doc NEEDSDOC @param dtm NEEDSDOC ($objectName$) @return |
int |
getDTMIdentityMask()
%TBD% Doc NEEDSDOC ($objectName$) @return |
static boolean |
getIncremental()
Set a flag indicating whether an incremental transform is desired |
int |
getNodeIdentityMask()
%TBD% Doc NEEDSDOC ($objectName$) @return |
XMLStringFactory |
getXMLStringFactory()
Get the XMLStringFactory used for the DTMs. |
static DTMManager |
newInstance(XMLStringFactory xsf)
Obtain a new instance of a DTMManager .
|
abstract boolean |
release(DTM dtm,
boolean shouldHardDelete)
Release a DTM either to a lru pool, or completely remove reference. |
static void |
setIncremental(boolean incremental)
Set a flag indicating whether an incremental transform is desired |
void |
setXMLStringFactory(XMLStringFactory xsf)
Set the XMLStringFactory used for the DTMs. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private static final String defaultPropName
protected XMLStringFactory m_xsf
public static boolean m_incremental
private static String foundFactory
private static boolean debug
public static final int IDENT_DTM_NODE_BITS
public static final int IDENT_NODE_DEFAULT
public static final int IDENT_DTM_DEFAULT
public static final int IDENT_MAX_DTMS
Constructor Detail |
protected DTMManager()
Method Detail |
public XMLStringFactory getXMLStringFactory()
public void setXMLStringFactory(XMLStringFactory xsf)
xsf
- a valid XMLStringFactory object, should not be null.public static DTMManager newInstance(XMLStringFactory xsf) throws DTMConfigurationException
DTMManager
.
This static method creates a new factory instance
This method uses the following ordered lookup procedure to determine
the DTMManager
implementation class to
load:
org.apache.xml.dtm.DTMManager
system
property.
META-INF/services/javax.xml.parsers.DTMManager
in jars available to the runtime.
DTMManager
classname, which is
org.apache.xml.dtm.ref.DTMManagerDefault
.
DTMManager
it can use the factory to configure
and obtain parser instances.
DTMConfigurationException
- if the implementation is not available or cannot be instantiated.public abstract DTM getDTM(javax.xml.transform.Source source, boolean unique, DTMWSFilter whiteSpaceFilter, boolean incremental, boolean doIndexing)
source
- the specification of the source object, which may be null,
in which case it is assumed that node construction will take
by some other means.unique
- true if the returned DTM must be unique, probably because it
is going to be mutated.whiteSpaceFilter
- Enables filtering of whitespace nodes, and may
be null.incremental
- true if the DTM should be built incrementally, if
possible.doIndexing
- true if the caller considers it worth it to use
indexing schemes.
public abstract DTM getDTM(int nodeHandle)
nodeHandle
- the nodeHandle.
public abstract int getDTMHandleFromNode(org.w3c.dom.Node node)
node
- Non-null reference to a DOM node.
public abstract DTM createDocumentFragment()
DocumentFragment
object.
public abstract boolean release(DTM dtm, boolean shouldHardDelete)
dtm
- The DTM to be released.shouldHardDelete
- True if the DTM should be removed no matter what.
public abstract DTMIterator createDTMIterator(Object xpathCompiler, int pos)
DTMIterator
based on an XPath
UnionExpr.
xpathCompiler
- ??? Somehow we need to pass in a subpart of the
expression. I hate to do this with strings, since the larger expression
has already been parsed.pos
- The position in the expression.
DTMIterator
.public abstract DTMIterator createDTMIterator(String xpathString, PrefixResolver presolver)
DTMIterator
based on an XPath
UnionExpr.
xpathString
- Must be a valid string expressing a
UnionExpr.presolver
- An object that can resolve prefixes to namespace URLs.
DTMIterator
.public abstract DTMIterator createDTMIterator(int whatToShow, DTMFilter filter, boolean entityReferenceExpansion)
DTMIterator
based only on a whatToShow
and a DTMFilter. The traversal semantics are defined as the
descendant access.
Note that DTMIterators may not be an exact match to DOM NodeIterators. They are initialized and used in much the same way as a NodeIterator, but their response to document mutation is not currently defined.
whatToShow
- This flag specifies which node types may appear in
the logical view of the tree presented by the iterator. See the
description of NodeFilter
for the set of possible
SHOW_
values.These flags can be combined using
OR
.filter
- The NodeFilter
to be used with this
DTMFilter
, or null
to indicate no filter.entityReferenceExpansion
- The value of this flag determines
whether entity reference nodes are expanded.
DTMIterator
.public abstract DTMIterator createDTMIterator(int node)
DTMIterator
that holds exactly one node.
node
- The node handle that the DTMIterator will iterate to.
DTMIterator
.public static boolean getIncremental()
public static void setIncremental(boolean incremental)
incremental
- boolean to use to set m_incremental.private static String findFactory(String factoryId, String defaultFactory)
factoryId
- Name of the factory interface.defaultFactory
- Default implementation, if nothing else is found.
public abstract int getDTMIdentity(DTM dtm)
public int getDTMIdentityMask()
public int getNodeIdentityMask()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |