Package org.exbin.xbup.core.block
Class XBDefaultBlock
- java.lang.Object
-
- org.exbin.xbup.core.block.XBDefaultBlock
-
-
Constructor Summary
Constructors Constructor Description XBDefaultBlock()
Creates new instance of XBDefaultBlock as an empty data block.XBDefaultBlock(XBBlock parent, XBBlockTerminationMode terminationMode, org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBDefaultBlock as a data block with given values.XBDefaultBlock(XBBlock parent, XBBlockTerminationMode terminationMode, XBAttribute[] attributes, XBBlock[] children)
Creates new instance of XBDefaultBlock as a node block with given values.XBDefaultBlock(XBBlockTerminationMode terminationMode, org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBDefaultBlock as a data block with given values and no parent block.XBDefaultBlock(XBBlockTerminationMode terminationMode, XBAttribute[] attributes, XBBlock[] children)
Creates new instance of XBDefaultBlock as a node block with given values and no parent block.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description XBAttribute
getAttributeAt(int attributeIndex)
Gets attribute of given index / order.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(XBBlock block)
Gets block position in depth-first scan of the tree.java.io.InputStream
getData()
Gets block data.XBBlockDataMode
getDataMode()
Returns mode whether this block is data block.long
getDataSize()
XBBlock
getChildAt(int childIndex)
Gets child block of given index.static int
getChildIndexOf(XBBlock parent, XBBlock block)
Gets block position in parents direct child list.XBBlock[]
getChildren()
Gets array of all children blocks.int
getChildrenCount()
Gets count of children.java.util.Optional<XBBlock>
getParentBlock()
Gets parent block or empty if block has no parent.XBBlockTerminationMode
getTerminationMode()
Returns whether this block is using sequence of children ended with termination block.void
setParent(XBBlock 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
-
XBDefaultBlock
public XBDefaultBlock()
Creates new instance of XBDefaultBlock as an empty data block.
-
XBDefaultBlock
public XBDefaultBlock(@Nullable XBBlock parent, @Nullable XBBlockTerminationMode terminationMode, @Nullable org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBDefaultBlock as a data block with given values.- Parameters:
parent
- parent nodeterminationMode
- termination modedata
- block data
-
XBDefaultBlock
public XBDefaultBlock(@Nullable XBBlockTerminationMode terminationMode, @Nullable org.exbin.auxiliary.paged_data.BinaryData data)
Creates new instance of XBDefaultBlock as a data block with given values and no parent block.- Parameters:
terminationMode
- termination modedata
- block data
-
XBDefaultBlock
public XBDefaultBlock(@Nullable XBBlock parent, @Nullable XBBlockTerminationMode terminationMode, @Nullable XBAttribute[] attributes, @Nullable XBBlock[] children)
Creates new instance of XBDefaultBlock as a node block with given values.- Parameters:
parent
- parent nodeterminationMode
- termination modeattributes
- attributeschildren
- children blocks
-
XBDefaultBlock
public XBDefaultBlock(@Nullable XBBlockTerminationMode terminationMode, @Nullable XBAttribute[] attributes, @Nullable XBBlock[] children)
Creates new instance of XBDefaultBlock as a node block with given values and no parent block.- Parameters:
terminationMode
- termination modeattributes
- attributeschildren
- children blocks
-
-
Method Detail
-
getParentBlock
@Nonnull public java.util.Optional<XBBlock> getParentBlock()
Description copied from interface:XBBlock
Gets parent block or empty if block has no parent.- Specified by:
getParentBlock
in interfaceXBBlock
- Returns:
- Parent block.
-
setParent
public void setParent(@Nullable XBBlock 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:XBBlock
Returns mode whether this block is data block.- Specified by:
getDataMode
in interfaceXBBlock
- Returns:
- data mode
-
getTerminationMode
@Nonnull public XBBlockTerminationMode getTerminationMode()
Description copied from interface:XBBlock
Returns whether this block is using sequence of children ended with termination block.- Specified by:
getTerminationMode
in interfaceXBBlock
- Returns:
- termination mode
-
getAttributes
@Nullable public XBAttribute[] getAttributes()
Description copied from interface:XBBlock
Gets array of attributes in order of appearance.- Specified by:
getAttributes
in interfaceXBBlock
- Returns:
- array of attributes
-
getAttributeAt
@Nullable public XBAttribute getAttributeAt(int attributeIndex)
Description copied from interface:XBBlock
Gets attribute of given index / order.- Specified by:
getAttributeAt
in interfaceXBBlock
- Parameters:
attributeIndex
- index/order of attribute- Returns:
- attribute value
-
getAttributesCount
public int getAttributesCount()
Description copied from interface:XBBlock
Gets count of attributes.- Specified by:
getAttributesCount
in interfaceXBBlock
- Returns:
- count of attributes
-
getChildren
public XBBlock[] getChildren()
Description copied from interface:XBBlock
Gets array of all children blocks.- Specified by:
getChildren
in interfaceXBBlock
- Returns:
- list of child blocks
-
getChildAt
@Nullable public XBBlock getChildAt(int childIndex)
Description copied from interface:XBBlock
Gets child block of given index.- Specified by:
getChildAt
in interfaceXBBlock
- Parameters:
childIndex
- index of child block- Returns:
- child block
-
getChildrenCount
public int getChildrenCount()
Description copied from interface:XBBlock
Gets count of children.- Specified by:
getChildrenCount
in interfaceXBBlock
- Returns:
- count of children
-
getData
@Nonnull public java.io.InputStream getData()
Description copied from interface:XBBlock
Gets block data.
-
getBlockData
@Nonnull public org.exbin.auxiliary.paged_data.BinaryData getBlockData()
Description copied from interface:XBBlock
Gets block data.- Specified by:
getBlockData
in interfaceXBBlock
- Returns:
- block data or throws invalid operation on non-data block
-
getDataSize
public long getDataSize()
-
getBlockIndex
public static int getBlockIndex(@Nullable XBBlock 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
-
-