Package com.adobe.xfa.data
Class DataNode
- java.lang.Object
-
- com.adobe.xfa.Obj
-
- com.adobe.xfa.Node
-
- com.adobe.xfa.Element
-
- com.adobe.xfa.data.DataNode
-
- All Implemented Interfaces:
Element.DualDomNode
,Peer
public final class DataNode extends Element implements Element.DualDomNode
DataNode is a class that combines what used to be two classes in the C++ code base: XFADataGroup and XFADataValue. Because of the revised DOM structure we're using in Java, we can't tell when an element is first created whether it's a dataGroup or dataValue. The easiest answer is to not differentiate. We'll set the classId after we load and rely on it to tell the difference.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.adobe.xfa.Element
Element.DualDomNode, Element.ReplaceContent
-
Nested classes/interfaces inherited from class com.adobe.xfa.Node
Node.ChangeLogger
-
-
Field Summary
-
Fields inherited from class com.adobe.xfa.Element
AttrIsDefault, AttrIsFragment, AttrIsTransient, CREATEACTION
-
Fields inherited from class com.adobe.xfa.Node
CREATE_ALWAYS_NEW, CREATE_IF_NOT_EXIST, CREATE_MUST_NOT_EXIST, CREATE_REPLACE, gsXFANamespacePrefix
-
Fields inherited from interface com.adobe.xfa.ut.Peer
ATTR_CHANGED, CHILD_ADDED, CHILD_REMOVED, DESCENDENT_ADDED, DESCENDENT_ATTR_CHANGED, DESCENDENT_REMOVED, DESCENDENT_VALUE_CHANGED, PARENT_CHANGED, PERMS_LOCK_CLEARED, PERMS_LOCK_SET, PROTO_ATTR_CHANGED, PROTO_CHILD_ADDED, PROTO_CHILD_REMOVED, PROTO_DESCENDENT_ADDED, PROTO_DESCENDENT_ATTR_CHANGED, PROTO_DESCENDENT_REMOVED, PROTO_DESCENDENT_VALUE_CHANGED, PROTO_VALUE_CHANGED, UPDATED, VALUE_CHANGED
-
-
Constructor Summary
Constructors Constructor Description DataNode(Element parent, Node prevSibling)
DataNode(Element parent, Node prevSibling, java.lang.String value)
Constructor for (text-only) DataValues.DataNode(Element parent, Node prevSibling, java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)
Constructor for DataGroups and DataNodes
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendChild(Node oChild, boolean bValidate)
Appends the given child to this element.void
clearNull()
Element
clone(Element parent, boolean deep)
void
connectPeerToDocument()
connectPeerToDocument() is used to rearrange the DOM tree when inserting or appending a node.Node
createChild(boolean bIsLeaf, java.lang.String aName)
create a new child that is appended to this node.java.lang.String
getContains()
Determine if a DataValue participates in its parent's value or is an attribute of the parent.java.lang.String
getContentType()
Determine the content type for a DataValue, e.g., text/html.java.lang.String
getData()
Gets this node's data.DataNode
getDataDescription()
Node
getFirstXFAChild()
Gets this data element's first XFA child.boolean
getIsDDPlaceholder()
boolean
getIsNull()
Determine if this node contains a null value.java.lang.String
getLocalName()
java.lang.String
getName()
Node
getNextXFASibling()
Gets this data element's next XFA sibling.java.lang.String
getNS()
SeeElement.getNS()
ScriptTable
getScriptTable()
java.lang.String
getValue()
Get the value of the node.java.lang.String
getValue(boolean bUseNull)
Get the value of the node.int
getWeight()
java.lang.String
getXMLName()
Node
getXmlPeer()
void
insertChild(Node oChild, Node refChild, boolean bValidate)
Inserts a child before a specific child in the child list.boolean
isAttribute()
Does this data node correspond to an XML Attribute?boolean
isContainer()
Check to see if this is a container object.boolean
isTransient()
Determine if this node is transient or not.boolean
isValidAttr(int eTag, boolean bReport, java.lang.String value)
Determine if a specified attribute tag is valid for this node.boolean
isValidChild(int eTag, int nResId, boolean bBeforeInsert, boolean bOccurrenceErrorOnly)
boolean
isValidElement(int eTag, boolean bReport)
void
makeNonDefault(boolean bRecursive)
Mark this element to indicate it is not a default propertyvoid
preSave(boolean bSaveXMLScript)
boolean
processTextChildrenDuringParse()
Text children of data cannot be processed at parse time.void
remove()
Removes this node fron its parent.void
resetPostLoadXML()
void
saveXML(java.io.OutputStream sOutFile, DOMSaveOptions options)
Serializes this element (and all its children) to an output stream.void
serialize(java.io.OutputStream outStream, DOMSaveOptions options, int level, Node prevSibling)
The helper function used by saveXML()void
setContentType(java.lang.String contentType)
void
setDataDescription(DataNode dataDescription)
void
setIsDDPlaceholder(boolean bIsDDPlaceholder)
void
setIsNull(boolean bNull, boolean bNotify)
Set the null status for this nodevoid
setLocalName(java.lang.String name)
void
setName(java.lang.String sName)
Sets this element's name attribute.void
setPictureFormat(java.lang.String sFormat, java.lang.String sLocale, boolean bIsTextNode)
Proprietary: set the data picture format for this data value Applicable to dataValue nodesvoid
setPrivateName(java.lang.String sName)
used when resolving protosvoid
setValue(java.lang.String sValue, boolean bNotify)
Set the value of the node.int
setWeight(int nWeight)
void
setXMLName(java.lang.String name)
void
setXmlPeer(Node peer)
-
Methods inherited from class com.adobe.xfa.Element
appendChild, appendPI, appendPI, assignNode, clone, constructKey, constructKeys, copyContent, defaultAttribute, defaultElement, defaultElement, establishID, evaluate, explodeQName, findAttr, findSchemaAttr, foundBadAttribute, foundBadAttribute, getAll, getAppModel, getAtom, getAttr, getAttribute, getAttribute, getAttributeByName, getAttrIndex, getAttrName, getAttrNS, getAttrProp, getAttrQName, getAttrVal, getChildReln, getClassAll, getClassIndex, getClassName, getDeltas, getElement, getElement, getElementClass, getElementLocal, getEnum, getEnum, getEventTable, getFirstXMLChild, getID, getIndex, getInheritedNS, getInstalledLocale, getLastXMLChild, getLineNumber, getModel, getNode, getNodes, getNodeSchema, getNumAttrs, getOneOfChild, getOneOfChild, getPI, getPI, getPrefix, getProperty, getProperty, getSaveXMLSaveTransient, getSchemaType, getScriptMethodInfo, getSibling, getText, getXFAChild, getXMLChild, getXPath, getXsiNilAttribute, inhibitPrettyPrint, inhibitPrettyPrint, isFragment, isHidden, isHidden, isIndexed, isInstalledLocaleAmbient, isLeaf, isNameSpaceAttr, isPropertySpecified, isPropertySpecified, isPropertyValid, isSpecified, isSpecified, isSpecified, isTransient, isTransparent, loadXML, loadXML, makeDefault, newAttribute, optimizeNameSpace, peekAttribute, peekElement, peekOneOfChild, peekProperty, peekProperty, postSave, privateSetName, removeAttr, removeAttr, removeChild, removePI, removePI, removeWhiteSpace, removeXsiNilAttribute, replaceChild, resolveAndEnumerateChildren, resolveNodeCreate, resolvePrefix, saveFilteredXML, saveXML, setAttribute, setAttribute, setAttribute, setAttribute, setAttrProp, setDefaultFlag, setDOMProperties, setElement, setIsDataWindowRoot, setIsIndexed, setLineNumber, setModel, setNS, setOneOfChild, setProperty, setProperty, setQName, setSaveXMLSaveTransient, setTransparent, setXsiNilAttribute, updateFromPeer
-
Methods inherited from class com.adobe.xfa.Node
checkAncestorPerms, checkDescendentPerms, checkPerms, cleanDirtyFlags, compareVersions, getFirstXMLChildElement, getLocked, getNextXMLSibling, getNextXMLSiblingElement, getNodeAsXML, getOwnerDocument, getPIAsXML, getPIName, getPreviousXMLSibling, getPrivateName, getPropName, getSOMExpression, getSOMExpression, getSomName, getUniqueSOMName, getWillDirty, getXFAChildCount, getXFAParent, getXfaPeer, getXMLChildCount, getXMLParent, hasChanged, isDefault, isDirty, isMapped, isPermsLockSet, locateChildByClass, locateChildByName, logValueChangeHelper, notifyPeers, performSOMAssignment, resolveNode, resolveNode, resolveNode, resolveNodes, resolveNodes, sendMessenge, setDirty, setDocument, setLocked, setMapped, setPermsLock, setWillDirty, setXfaPeer, unLock, validateSchema, validateUsage, validateUsageFailedIsFatal
-
Methods inherited from class com.adobe.xfa.Obj
addPeer, addPeeredNode, clearPeers, deafen, getClassAtom, getClassTag, getPeer, getScriptProperty, getScriptThis, invokeFunction, isDeaf, isMute, isSameClass, isSameClass, isSameClass, mute, peerRemoved, removePeer, removePeeredNode, setClass, setClassTag, setScriptProperty, unDeafen, unMute
-
-
-
-
Method Detail
-
appendChild
public void appendChild(Node oChild, boolean bValidate)
Description copied from class:Element
Appends the given child to this element.- Overrides:
appendChild
in classElement
- Parameters:
oChild
- the child node being appended.bValidate
- when true, ensures the given child is valid per the model's schema and throws anExFull
if not.
-
clearNull
public void clearNull()
-
createChild
public Node createChild(boolean bIsLeaf, java.lang.String aName)
create a new child that is appended to this node.
-
getContains
public java.lang.String getContains()
Determine if a DataValue participates in its parent's value or is an attribute of the parent. The value returned is "data" or "metaData".- Returns:
- String that determines if this data value should be included in its parent's value result or as an attribute of the parent.
-
getContentType
public java.lang.String getContentType()
Determine the content type for a DataValue, e.g., text/html.- Returns:
- String that determines the content type.
-
getDataDescription
public DataNode getDataDescription()
-
getIsDDPlaceholder
public boolean getIsDDPlaceholder()
-
getIsNull
public boolean getIsNull()
Description copied from class:Element
Determine if this node contains a null value.- Overrides:
getIsNull
in classElement
- Returns:
- true if this node contains a null value, false otherwise.
- See Also:
Element.getIsNull()
-
getName
public java.lang.String getName()
-
getLocalName
public java.lang.String getLocalName()
- Overrides:
getLocalName
in classElement
- Returns:
- the local name as an interned string.
-
setLocalName
public void setLocalName(java.lang.String name)
- Overrides:
setLocalName
in classElement
- Parameters:
name
- the new local name.
-
getXMLName
public java.lang.String getXMLName()
- Overrides:
getXMLName
in classElement
- Returns:
- the qualified name as an interned string.
-
setXMLName
public void setXMLName(java.lang.String name)
- Overrides:
setXMLName
in classElement
-
getNS
public java.lang.String getNS()
SeeElement.getNS()
-
getData
public java.lang.String getData()
Description copied from class:Node
Gets this node's data.
-
getFirstXFAChild
public Node getFirstXFAChild()
Gets this data element's first XFA child. Text nodes in the data model can't be exposed to counting, scripting, etc...- Overrides:
getFirstXFAChild
in classElement
- Returns:
- the first XFA child.
-
getNextXFASibling
public Node getNextXFASibling()
Gets this data element's next XFA sibling. Text nodes in the data model can't be exposed to counting, scripting, etc...- Overrides:
getNextXFASibling
in classNode
- Returns:
- the next XFA sibling.
-
getScriptTable
public ScriptTable getScriptTable()
- Overrides:
getScriptTable
in classElement
-
getValue
public java.lang.String getValue()
Get the value of the node.- Returns:
- The string value of this node.
-
getValue
public java.lang.String getValue(boolean bUseNull)
Get the value of the node.- Returns:
- The string value of this node.
-
isAttribute
public boolean isAttribute()
Does this data node correspond to an XML Attribute?- Returns:
- true if this node corresponds to an XML Attribute.
-
getWeight
public int getWeight()
-
insertChild
public void insertChild(Node oChild, Node refChild, boolean bValidate)
Description copied from class:Element
Inserts a child before a specific child in the child list.- Overrides:
insertChild
in classElement
- Parameters:
oChild
- the child to be insertedrefChild
- the child to insert beforebValidate
- if true, validate the insertion
-
isContainer
public boolean isContainer()
Description copied from class:Node
Check to see if this is a container object. A container is defined as something that is not a leaf node not properties ( [0..1] occurrences ). It does NOT indicate whether this node derives from XFAContainer- Overrides:
isContainer
in classElement
- Returns:
- true if this node is a container, false otherwise
-
isValidAttr
public boolean isValidAttr(int eTag, boolean bReport, java.lang.String value)
Description copied from class:Element
Determine if a specified attribute tag is valid for this node.- Overrides:
isValidAttr
in classElement
- Parameters:
eTag
- the XFA tag to check- Returns:
- true if valid.
- See Also:
Element.isValidAttr(int, boolean, String)
-
isValidChild
public boolean isValidChild(int eTag, int nResId, boolean bBeforeInsert, boolean bOccurrenceErrorOnly)
- Overrides:
isValidChild
in classElement
- Parameters:
eTag
- the class tag of the node that will be or has been appendedbBeforeInsert
- iftrue
, then the child has not yet been inserted into the child list of this element.- Returns:
true
if eTag is a valid child.- See Also:
Element.isValidChild(int, int, boolean, boolean)
-
isValidElement
public boolean isValidElement(int eTag, boolean bReport)
- Overrides:
isValidElement
in classElement
- See Also:
Element.isValidElement(int, boolean)
-
makeNonDefault
public void makeNonDefault(boolean bRecursive)
Description copied from class:Node
Mark this element to indicate it is not a default property- Overrides:
makeNonDefault
in classElement
- See Also:
Node.makeNonDefault(boolean)
-
processTextChildrenDuringParse
public boolean processTextChildrenDuringParse()
Text children of data cannot be processed at parse time. This processing is deferred to postLoad processing.- Overrides:
processTextChildrenDuringParse
in classElement
- Returns:
true
if child text nodes should be processed at parse time.
-
preSave
public void preSave(boolean bSaveXMLScript)
- Overrides:
preSave
in classElement
- See Also:
Node.preSave(boolean)
-
resetPostLoadXML
public void resetPostLoadXML()
- Overrides:
resetPostLoadXML
in classElement
-
saveXML
public void saveXML(java.io.OutputStream sOutFile, DOMSaveOptions options)
Description copied from class:Element
Serializes this element (and all its children) to an output stream.- Overrides:
saveXML
in classElement
- Parameters:
sOutFile
- an output stream.options
- the XML save options- See Also:
Element.saveXML(OutputStream, DOMSaveOptions)
-
serialize
public void serialize(java.io.OutputStream outStream, DOMSaveOptions options, int level, Node prevSibling) throws java.io.IOException
Description copied from class:Node
The helper function used by saveXML()- Overrides:
serialize
in classElement
- Parameters:
outStream
- Streamfile to write tooptions
- save optionslevel
- the indent levelprevSibling
- our previous sibling -- needed for some markup options.- Throws:
java.io.IOException
- See Also:
Node.serialize(OutputStream, DOMSaveOptions, int, Node)
-
setContentType
public void setContentType(java.lang.String contentType)
-
setDataDescription
public void setDataDescription(DataNode dataDescription)
-
setIsDDPlaceholder
public void setIsDDPlaceholder(boolean bIsDDPlaceholder)
-
setIsNull
public void setIsNull(boolean bNull, boolean bNotify)
Set the null status for this node- Parameters:
bNull
-bNotify
-
-
setName
public void setName(java.lang.String sName)
Description copied from class:Element
Sets this element's name attribute.
-
setPictureFormat
public void setPictureFormat(java.lang.String sFormat, java.lang.String sLocale, boolean bIsTextNode)
Proprietary: set the data picture format for this data value Applicable to dataValue nodes- Parameters:
sFormat
-sLocale
-bIsTextNode
-
-
setPrivateName
public void setPrivateName(java.lang.String sName)
Description copied from class:Node
used when resolving protos- Overrides:
setPrivateName
in classNode
-
setValue
public void setValue(java.lang.String sValue, boolean bNotify)
Set the value of the node. Note! if a DataValue has child DataValues, setting the value will delete all children.- Parameters:
sValue
- - the new value for this node.
-
setWeight
public int setWeight(int nWeight)
-
isTransient
public final boolean isTransient()
Determine if this node is transient or not. Transient nodes are not saved when the DOM is written out.- Overrides:
isTransient
in classNode
- Returns:
- boolean transient status.
-
connectPeerToDocument
public void connectPeerToDocument()
Description copied from class:Element
connectPeerToDocument() is used to rearrange the DOM tree when inserting or appending a node. It is provided here as a utility function for derived classes that could be adding child nodes, when peered against an orphan node. In particular, this happens with xfa:datasets and xfa:data, both of which may be created during the load process. On the C++ side, this method is only used by the data model. Due to the differences between the relationship of Documents and AppModels in Java, on the Java side it is also called when creating a DOM from scratch, from any ModelFactory's createDOM method. In the DataModel context at least, it should only be called if the DOM peer is an orphan. It takes that orphan and connects it to the document, and then moves the original peer of this node to be a child of the node that previously was orphaned.- Overrides:
connectPeerToDocument
in classElement
-
setXmlPeer
public void setXmlPeer(Node peer)
- Specified by:
setXmlPeer
in interfaceElement.DualDomNode
-
getXmlPeer
public Node getXmlPeer()
- Specified by:
getXmlPeer
in interfaceElement.DualDomNode
-
-