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 voidappendChild(Node oChild, boolean bValidate)Appends the given child to this element.voidclearNull()Elementclone(Element parent, boolean deep)voidconnectPeerToDocument()connectPeerToDocument() is used to rearrange the DOM tree when inserting or appending a node.NodecreateChild(boolean bIsLeaf, java.lang.String aName)create a new child that is appended to this node.java.lang.StringgetContains()Determine if a DataValue participates in its parent's value or is an attribute of the parent.java.lang.StringgetContentType()Determine the content type for a DataValue, e.g., text/html.java.lang.StringgetData()Gets this node's data.DataNodegetDataDescription()NodegetFirstXFAChild()Gets this data element's first XFA child.booleangetIsDDPlaceholder()booleangetIsNull()Determine if this node contains a null value.java.lang.StringgetLocalName()java.lang.StringgetName()NodegetNextXFASibling()Gets this data element's next XFA sibling.java.lang.StringgetNS()SeeElement.getNS()ScriptTablegetScriptTable()java.lang.StringgetValue()Get the value of the node.java.lang.StringgetValue(boolean bUseNull)Get the value of the node.intgetWeight()java.lang.StringgetXMLName()NodegetXmlPeer()voidinsertChild(Node oChild, Node refChild, boolean bValidate)Inserts a child before a specific child in the child list.booleanisAttribute()Does this data node correspond to an XML Attribute?booleanisContainer()Check to see if this is a container object.booleanisTransient()Determine if this node is transient or not.booleanisValidAttr(int eTag, boolean bReport, java.lang.String value)Determine if a specified attribute tag is valid for this node.booleanisValidChild(int eTag, int nResId, boolean bBeforeInsert, boolean bOccurrenceErrorOnly)booleanisValidElement(int eTag, boolean bReport)voidmakeNonDefault(boolean bRecursive)Mark this element to indicate it is not a default propertyvoidpreSave(boolean bSaveXMLScript)booleanprocessTextChildrenDuringParse()Text children of data cannot be processed at parse time.voidremove()Removes this node fron its parent.voidresetPostLoadXML()voidsaveXML(java.io.OutputStream sOutFile, DOMSaveOptions options)Serializes this element (and all its children) to an output stream.voidserialize(java.io.OutputStream outStream, DOMSaveOptions options, int level, Node prevSibling)The helper function used by saveXML()voidsetContentType(java.lang.String contentType)voidsetDataDescription(DataNode dataDescription)voidsetIsDDPlaceholder(boolean bIsDDPlaceholder)voidsetIsNull(boolean bNull, boolean bNotify)Set the null status for this nodevoidsetLocalName(java.lang.String name)voidsetName(java.lang.String sName)Sets this element's name attribute.voidsetPictureFormat(java.lang.String sFormat, java.lang.String sLocale, boolean bIsTextNode)Proprietary: set the data picture format for this data value Applicable to dataValue nodesvoidsetPrivateName(java.lang.String sName)used when resolving protosvoidsetValue(java.lang.String sValue, boolean bNotify)Set the value of the node.intsetWeight(int nWeight)voidsetXMLName(java.lang.String name)voidsetXmlPeer(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:ElementAppends the given child to this element.- Overrides:
appendChildin classElement- Parameters:
oChild- the child node being appended.bValidate- when true, ensures the given child is valid per the model's schema and throws anExFullif 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:ElementDetermine if this node contains a null value.- Overrides:
getIsNullin 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:
getLocalNamein classElement- Returns:
- the local name as an interned string.
-
setLocalName
public void setLocalName(java.lang.String name)
- Overrides:
setLocalNamein classElement- Parameters:
name- the new local name.
-
getXMLName
public java.lang.String getXMLName()
- Overrides:
getXMLNamein classElement- Returns:
- the qualified name as an interned string.
-
setXMLName
public void setXMLName(java.lang.String name)
- Overrides:
setXMLNamein classElement
-
getNS
public java.lang.String getNS()
SeeElement.getNS()
-
getData
public java.lang.String getData()
Description copied from class:NodeGets 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:
getFirstXFAChildin 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:
getNextXFASiblingin classNode- Returns:
- the next XFA sibling.
-
getScriptTable
public ScriptTable getScriptTable()
- Overrides:
getScriptTablein 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:ElementInserts a child before a specific child in the child list.- Overrides:
insertChildin 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:NodeCheck 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:
isContainerin 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:ElementDetermine if a specified attribute tag is valid for this node.- Overrides:
isValidAttrin 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:
isValidChildin 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:
trueif eTag is a valid child.- See Also:
Element.isValidChild(int, int, boolean, boolean)
-
isValidElement
public boolean isValidElement(int eTag, boolean bReport)- Overrides:
isValidElementin classElement- See Also:
Element.isValidElement(int, boolean)
-
makeNonDefault
public void makeNonDefault(boolean bRecursive)
Description copied from class:NodeMark this element to indicate it is not a default property- Overrides:
makeNonDefaultin 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:
processTextChildrenDuringParsein classElement- Returns:
trueif child text nodes should be processed at parse time.
-
preSave
public void preSave(boolean bSaveXMLScript)
- Overrides:
preSavein classElement- See Also:
Node.preSave(boolean)
-
resetPostLoadXML
public void resetPostLoadXML()
- Overrides:
resetPostLoadXMLin classElement
-
saveXML
public void saveXML(java.io.OutputStream sOutFile, DOMSaveOptions options)Description copied from class:ElementSerializes this element (and all its children) to an output stream.- Overrides:
saveXMLin 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.IOExceptionDescription copied from class:NodeThe helper function used by saveXML()- Overrides:
serializein 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:ElementSets 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:Nodeused when resolving protos- Overrides:
setPrivateNamein 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:
isTransientin classNode- Returns:
- boolean transient status.
-
connectPeerToDocument
public void connectPeerToDocument()
Description copied from class:ElementconnectPeerToDocument() 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:
connectPeerToDocumentin classElement
-
setXmlPeer
public void setXmlPeer(Node peer)
- Specified by:
setXmlPeerin interfaceElement.DualDomNode
-
getXmlPeer
public Node getXmlPeer()
- Specified by:
getXmlPeerin interfaceElement.DualDomNode
-
-