Package org.exbin.xbup.parser_tree
Class XBTreeNode
- java.lang.Object
-
- org.exbin.xbup.parser_tree.XBTreeNode
-
- All Implemented Interfaces:
java.io.Serializable
,javax.swing.tree.TreeNode
,org.exbin.xbup.core.block.XBBlock
,org.exbin.xbup.core.block.XBEditableBlock
,org.exbin.xbup.core.ubnumber.UBStreamable
public class XBTreeNode extends java.lang.Object implements org.exbin.xbup.core.block.XBEditableBlock, javax.swing.tree.TreeNode, org.exbin.xbup.core.ubnumber.UBStreamable
Basic object model parser XBUP level 0 document block / tree node.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description XBTreeNode()
XBTreeNode(XBTreeNode parent)
Creates a new instance of XBTreeNode with parent node assigned.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAttribute(org.exbin.xbup.core.parser.token.XBAttribute attribute)
void
addChild(XBTreeNode child)
int
attributesSizeUB()
void
clear()
void
clearData()
XBTreeNode
cloneNode(boolean recursive)
XBTreeNode
createNewChild(int childIndex)
This method instantiates new child node.static XBTreeNode
createTreeCopy(org.exbin.xbup.core.block.XBBlock block)
Creates XBTreeNode copy of given block and all of its children.static XBTreeNode
createTreeCopy(org.exbin.xbup.core.block.XBBlock block, XBTreeNode parent)
Creates XBTreeNode copy of given block and all of its children.XBTreeNode
findNodeByIndex(long index)
Finds node of given index (recursive, no cache).int
fromStreamUB(java.io.InputStream stream)
int
fromStreamUB(java.io.InputStream stream, boolean terminable)
Loads this node from data stream.boolean
getAllowsChildren()
org.exbin.xbup.core.parser.token.XBAttribute
getAttributeAt(int index)
org.exbin.xbup.core.parser.token.XBAttribute[]
getAttributes()
int
getAttributesCount()
org.exbin.auxiliary.paged_data.BinaryData
getBlockData()
int
getBlockIndex()
Gets index in depth-first order.long
getBlockSize()
java.io.InputStream
getData()
org.exbin.xbup.core.block.XBBlockDataMode
getDataMode()
long
getDataSize()
XBTreeNode
getChildAt(int childIndex)
int
getChildCount()
org.exbin.xbup.core.block.XBBlock[]
getChildren()
int
getChildrenCount()
int
getIndex(javax.swing.tree.TreeNode node)
Returns index of child.int
getNodeIndexAfter()
XBTreeNode
getParent()
java.util.Optional<org.exbin.xbup.core.block.XBBlock>
getParentBlock()
int
getSizeUB()
int
getSubNodesCount()
Gets count of all subnodes.org.exbin.xbup.core.block.XBBlockTerminationMode
getTerminationMode()
java.util.Enumeration
children()
int
childrenFromStreamUB(java.io.InputStream stream, java.lang.Integer maxSize)
Loads children from data stream.int
childrenSizeUB()
int
childrenToStreamUB(java.io.OutputStream stream)
boolean
isLeaf()
void
removeAttribute(int index)
void
removeChild(int index)
void
setAttributeAt(org.exbin.xbup.core.parser.token.XBAttribute attribute, int attributeIndex)
void
setAttributes(org.exbin.xbup.core.parser.token.XBAttribute[] attributes)
void
setAttributesCount(int count)
void
setData(java.io.InputStream source)
void
setData(org.exbin.auxiliary.paged_data.BinaryData newData)
void
setDataMode(org.exbin.xbup.core.block.XBBlockDataMode dataMode)
void
setChildAt(org.exbin.xbup.core.block.XBBlock block, int childIndex)
void
setChildren(org.exbin.xbup.core.block.XBBlock[] children)
void
setChildrenCount(int count)
void
setParent(org.exbin.xbup.core.block.XBBlock parent)
void
setTerminationMode(org.exbin.xbup.core.block.XBBlockTerminationMode terminationMode)
int
toStreamUB(java.io.OutputStream stream)
-
-
-
Constructor Detail
-
XBTreeNode
public XBTreeNode()
-
XBTreeNode
public XBTreeNode(XBTreeNode parent)
Creates a new instance of XBTreeNode with parent node assigned. This is NOT copy constructor.- Parameters:
parent
- Set it as parent node
-
-
Method Detail
-
getSubNodesCount
public int getSubNodesCount()
Gets count of all subnodes.- Returns:
- count of child nodes and all their child nodes
-
getBlockIndex
public int getBlockIndex()
Gets index in depth-first order.- Returns:
- node index
-
getNodeIndexAfter
public int getNodeIndexAfter()
-
findNodeByIndex
public XBTreeNode findNodeByIndex(long index)
Finds node of given index (recursive, no cache).- Parameters:
index
- depth-first order index- Returns:
- node if found
-
fromStreamUB
public int fromStreamUB(java.io.InputStream stream) throws java.io.IOException, org.exbin.xbup.core.parser.XBProcessingException
- Specified by:
fromStreamUB
in interfaceorg.exbin.xbup.core.ubnumber.UBStreamable
- Throws:
java.io.IOException
org.exbin.xbup.core.parser.XBProcessingException
-
fromStreamUB
public int fromStreamUB(java.io.InputStream stream, boolean terminable) throws java.io.IOException, org.exbin.xbup.core.parser.XBProcessingException
Loads this node from data stream.- Parameters:
stream
- data streamterminable
- specify if terminator can be read- Returns:
- size of read bytes
- Throws:
java.io.IOException
- exception on input/output errororg.exbin.xbup.core.parser.XBProcessingException
-
childrenFromStreamUB
public int childrenFromStreamUB(java.io.InputStream stream, java.lang.Integer maxSize) throws java.io.IOException, org.exbin.xbup.core.parser.XBProcessingException
Loads children from data stream.- Parameters:
stream
- input streammaxSize
- Maximum size of bytes to consume. Otherwise Exception. Zero means terminationMode block.- Returns:
- size of bytes read
- Throws:
java.io.IOException
- exception on input/output errororg.exbin.xbup.core.parser.XBProcessingException
-
toStreamUB
public int toStreamUB(java.io.OutputStream stream) throws java.io.IOException
- Specified by:
toStreamUB
in interfaceorg.exbin.xbup.core.ubnumber.UBStreamable
- Throws:
java.io.IOException
-
childrenToStreamUB
public int childrenToStreamUB(java.io.OutputStream stream) throws java.io.IOException
- Throws:
java.io.IOException
-
getSizeUB
public int getSizeUB()
- Specified by:
getSizeUB
in interfaceorg.exbin.xbup.core.ubnumber.UBStreamable
-
getAllowsChildren
public boolean getAllowsChildren()
- Specified by:
getAllowsChildren
in interfacejavax.swing.tree.TreeNode
-
isLeaf
public boolean isLeaf()
- Specified by:
isLeaf
in interfacejavax.swing.tree.TreeNode
-
children
public java.util.Enumeration children()
- Specified by:
children
in interfacejavax.swing.tree.TreeNode
-
clear
public void clear()
- Specified by:
clear
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
childrenSizeUB
public int childrenSizeUB()
-
attributesSizeUB
public int attributesSizeUB()
-
getData
public java.io.InputStream getData()
- Specified by:
getData
in interfaceorg.exbin.xbup.core.block.XBBlock
-
getBlockData
public org.exbin.auxiliary.paged_data.BinaryData getBlockData()
- Specified by:
getBlockData
in interfaceorg.exbin.xbup.core.block.XBBlock
-
getDataSize
public long getDataSize()
-
setData
public void setData(java.io.InputStream source) throws java.io.IOException
- Specified by:
setData
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
- Throws:
java.io.IOException
-
setData
public void setData(org.exbin.auxiliary.paged_data.BinaryData newData)
- Specified by:
setData
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
clearData
public void clearData()
-
cloneNode
public XBTreeNode cloneNode(boolean recursive)
-
createNewChild
public XBTreeNode createNewChild(int childIndex)
This method instantiates new child node.- Specified by:
createNewChild
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
- Parameters:
childIndex
- child index- Returns:
- new
-
getBlockSize
public long getBlockSize()
-
getParent
@Nullable public XBTreeNode getParent()
- Specified by:
getParent
in interfacejavax.swing.tree.TreeNode
-
getParentBlock
@Nonnull public java.util.Optional<org.exbin.xbup.core.block.XBBlock> getParentBlock()
- Specified by:
getParentBlock
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setParent
public void setParent(org.exbin.xbup.core.block.XBBlock parent)
- Specified by:
setParent
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getTerminationMode
public org.exbin.xbup.core.block.XBBlockTerminationMode getTerminationMode()
- Specified by:
getTerminationMode
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setTerminationMode
public void setTerminationMode(org.exbin.xbup.core.block.XBBlockTerminationMode terminationMode)
- Specified by:
setTerminationMode
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getDataMode
public org.exbin.xbup.core.block.XBBlockDataMode getDataMode()
- Specified by:
getDataMode
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setDataMode
public void setDataMode(org.exbin.xbup.core.block.XBBlockDataMode dataMode)
- Specified by:
setDataMode
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getAttributeAt
public org.exbin.xbup.core.parser.token.XBAttribute getAttributeAt(int index)
- Specified by:
getAttributeAt
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setAttributeAt
public void setAttributeAt(org.exbin.xbup.core.parser.token.XBAttribute attribute, int attributeIndex)
- Specified by:
setAttributeAt
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getAttributesCount
public int getAttributesCount()
- Specified by:
getAttributesCount
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setAttributesCount
public void setAttributesCount(int count)
- Specified by:
setAttributesCount
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
addAttribute
public void addAttribute(org.exbin.xbup.core.parser.token.XBAttribute attribute)
-
removeAttribute
public void removeAttribute(int index)
- Specified by:
removeAttribute
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getAttributes
public org.exbin.xbup.core.parser.token.XBAttribute[] getAttributes()
- Specified by:
getAttributes
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setAttributes
public void setAttributes(org.exbin.xbup.core.parser.token.XBAttribute[] attributes)
- Specified by:
setAttributes
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getChildAt
public XBTreeNode getChildAt(int childIndex)
- Specified by:
getChildAt
in interfacejavax.swing.tree.TreeNode
- Specified by:
getChildAt
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setChildAt
public void setChildAt(org.exbin.xbup.core.block.XBBlock block, int childIndex)
- Specified by:
setChildAt
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getIndex
public int getIndex(javax.swing.tree.TreeNode node)
Returns index of child.- Specified by:
getIndex
in interfacejavax.swing.tree.TreeNode
- Parameters:
node
- node to search match for- Returns:
- index of node if node found
-
addChild
public void addChild(XBTreeNode child)
-
removeChild
public void removeChild(int index)
- Specified by:
removeChild
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getChildrenCount
public int getChildrenCount()
- Specified by:
getChildrenCount
in interfaceorg.exbin.xbup.core.block.XBBlock
-
getChildCount
public int getChildCount()
- Specified by:
getChildCount
in interfacejavax.swing.tree.TreeNode
-
setChildrenCount
public void setChildrenCount(int count)
- Specified by:
setChildrenCount
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
getChildren
public org.exbin.xbup.core.block.XBBlock[] getChildren()
- Specified by:
getChildren
in interfaceorg.exbin.xbup.core.block.XBBlock
-
setChildren
public void setChildren(org.exbin.xbup.core.block.XBBlock[] children)
- Specified by:
setChildren
in interfaceorg.exbin.xbup.core.block.XBEditableBlock
-
createTreeCopy
public static XBTreeNode createTreeCopy(org.exbin.xbup.core.block.XBBlock block)
Creates XBTreeNode copy of given block and all of its children.- Parameters:
block
- source block- Returns:
- node
-
createTreeCopy
public static XBTreeNode createTreeCopy(org.exbin.xbup.core.block.XBBlock block, XBTreeNode parent)
Creates XBTreeNode copy of given block and all of its children.- Parameters:
block
- source blockparent
- parent node- Returns:
- node
-
-