Package org.exbin.xbup.core.block
Class XBTDefaultBlock
- java.lang.Object
-
- org.exbin.xbup.core.block.XBTDefaultBlock
-
-
Constructor Summary
Constructors Constructor Description XBTDefaultBlock()
Creates new instance of XBDefaultBlock as an empty data block.XBTDefaultBlock(XBBlockTerminationMode terminationMode, org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBTDefaultBlock as a data block with given values and no parent block.XBTDefaultBlock(XBBlockTerminationMode terminationMode, XBBlockType blockType, XBAttribute[] attributes, XBTBlock[] children)
Creates new instance of XBTDefaultBlock as a node block with given values and no parent block.XBTDefaultBlock(XBTBlock parent, XBBlockTerminationMode terminationMode, org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBTDefaultBlock as a data block with given values.XBTDefaultBlock(XBTBlock parent, XBBlockTerminationMode terminationMode, XBBlockType blockType, XBAttribute[] attributes, XBTBlock[] children)
Creates new instance of XBTDefaultBlock as a node block with given values.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description XBAttribute
getAttributeAt(int attributeIndex)
Gets attribute of given index.XBAttribute[]
getAttributes()
Gets array of attributes in order of appearance.int
getAttributesCount()
Gets count of attributes.org.exbin.auxiliary.paged_data.BinaryData
getBlockData()
Gets block data.static int
getBlockIndex(XBTBlock block)
Gets block position in depth-first scan of the tree.XBBlockType
getBlockType()
Gets block type.java.io.InputStream
getData()
Gets block data.XBBlockDataMode
getDataMode()
Returns whether this block is data block.XBTBlock
getChildAt(int childIndex)
Gets children of given index.static int
getChildIndexOf(XBTBlock parent, XBTBlock block)
Gets block position in parents direct child list.XBTBlock[]
getChildren()
Gets array of all children.int
getChildrenCount()
Gets count of children blocks.java.util.Optional<XBTBlock>
getParentBlock()
Gets parent block or null if block has no parent.XBBlockTerminationMode
getTerminationMode()
Returns whether this block is using sequence of children ended with termination block.void
setParent(XBTBlock parent)
Allows to set parent block, which is not cosidered as a part of the block value and allows to move this block in tree.
-
-
-
Constructor Detail
-
XBTDefaultBlock
public XBTDefaultBlock()
Creates new instance of XBDefaultBlock as an empty data block.
-
XBTDefaultBlock
public XBTDefaultBlock(@Nullable XBTBlock parent, @Nullable XBBlockTerminationMode terminationMode, @Nullable org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBTDefaultBlock as a data block with given values.- Parameters:
parent
- parent nodeterminationMode
- termination modedata
- block data
-
XBTDefaultBlock
public XBTDefaultBlock(@Nullable XBBlockTerminationMode terminationMode, @Nullable org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBTDefaultBlock as a data block with given values and no parent block.- Parameters:
terminationMode
- termination modedata
- block data
-
XBTDefaultBlock
public XBTDefaultBlock(@Nullable XBTBlock parent, @Nullable XBBlockTerminationMode terminationMode, @Nullable XBBlockType blockType, @Nullable XBAttribute[] attributes, @Nullable XBTBlock[] children)
Creates new instance of XBTDefaultBlock as a node block with given values.- Parameters:
parent
- parent nodeterminationMode
- termination modeblockType
- block typeattributes
- attributeschildren
- children blocks
-
XBTDefaultBlock
public XBTDefaultBlock(@Nullable XBBlockTerminationMode terminationMode, @Nullable XBBlockType blockType, @Nullable XBAttribute[] attributes, @Nullable XBTBlock[] children)
Creates new instance of XBTDefaultBlock as a node block with given values and no parent block.- Parameters:
terminationMode
- termination modeblockType
- block typeattributes
- attributeschildren
- children blocks
-
-
Method Detail
-
getParentBlock
@Nonnull public java.util.Optional<XBTBlock> getParentBlock()
Description copied from interface:XBTBlock
Gets parent block or null if block has no parent.- Specified by:
getParentBlock
in interfaceXBTBlock
- Returns:
- parent block
-
setParent
public void setParent(@Nullable XBTBlock parent)
Allows to set parent block, which is not cosidered as a part of the block value and allows to move this block in tree.- Parameters:
parent
- parent block
-
getDataMode
@Nonnull public XBBlockDataMode getDataMode()
Description copied from interface:XBTBlock
Returns whether this block is data block.- Specified by:
getDataMode
in interfaceXBTBlock
- Returns:
- data mode
-
getTerminationMode
@Nonnull public XBBlockTerminationMode getTerminationMode()
Description copied from interface:XBTBlock
Returns whether this block is using sequence of children ended with termination block.- Specified by:
getTerminationMode
in interfaceXBTBlock
- Returns:
- terminated mode
-
getBlockType
@Nonnull public XBBlockType getBlockType()
Description copied from interface:XBTBlock
Gets block type.- Specified by:
getBlockType
in interfaceXBTBlock
- Returns:
- block type
-
getAttributes
@Nullable public XBAttribute[] getAttributes()
Description copied from interface:XBTBlock
Gets array of attributes in order of appearance.- Specified by:
getAttributes
in interfaceXBTBlock
- Returns:
- array of attributes
-
getAttributeAt
@Nullable public XBAttribute getAttributeAt(int attributeIndex)
Description copied from interface:XBTBlock
Gets attribute of given index. Returns zero if attribute index greater than attributes count.- Specified by:
getAttributeAt
in interfaceXBTBlock
- Parameters:
attributeIndex
- index of attribute- Returns:
- attribute value
-
getAttributesCount
public int getAttributesCount()
Description copied from interface:XBTBlock
Gets count of attributes.- Specified by:
getAttributesCount
in interfaceXBTBlock
- Returns:
- count of attributes
-
getChildren
@Nullable public XBTBlock[] getChildren()
Description copied from interface:XBTBlock
Gets array of all children.- Specified by:
getChildren
in interfaceXBTBlock
- Returns:
- array of child blocks
-
getChildAt
@Nullable public XBTBlock getChildAt(int childIndex)
Description copied from interface:XBTBlock
Gets children of given index. If no child for given index exist, return null.- Specified by:
getChildAt
in interfaceXBTBlock
- Parameters:
childIndex
- index of child block- Returns:
- child block
-
getChildrenCount
public int getChildrenCount()
Description copied from interface:XBTBlock
Gets count of children blocks.- Specified by:
getChildrenCount
in interfaceXBTBlock
- Returns:
- count of children
-
getData
@Nonnull public java.io.InputStream getData()
Description copied from interface:XBTBlock
Gets block data.
-
getBlockData
@Nonnull public org.exbin.auxiliary.paged_data.BinaryData getBlockData()
Description copied from interface:XBTBlock
Gets block data.- Specified by:
getBlockData
in interfaceXBTBlock
- Returns:
- block data or throws invalid operation on non-data block
-
getBlockIndex
public static int getBlockIndex(@Nullable XBTBlock block)
Gets block position in depth-first scan of the tree. Returns -1 for null block or if tree structure is corrupted.- Parameters:
block
- target block- Returns:
- position index
-
-