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 XBAttributegetAttributeAt(int attributeIndex)Gets attribute of given index / order.XBAttribute[]getAttributes()Gets array of attributes in order of appearance.intgetAttributesCount()Gets count of attributes.org.exbin.auxiliary.paged_data.BinaryDatagetBlockData()Gets block data.static intgetBlockIndex(XBBlock block)Gets block position in depth-first scan of the tree.java.io.InputStreamgetData()Gets block data.XBBlockDataModegetDataMode()Returns mode whether this block is data block.longgetDataSize()XBBlockgetChildAt(int childIndex)Gets child block of given index.static intgetChildIndexOf(XBBlock parent, XBBlock block)Gets block position in parents direct child list.XBBlock[]getChildren()Gets array of all children blocks.intgetChildrenCount()Gets count of children.java.util.Optional<XBBlock>getParentBlock()Gets parent block or empty if block has no parent.XBBlockTerminationModegetTerminationMode()Returns whether this block is using sequence of children ended with termination block.voidsetParent(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:XBBlockGets parent block or empty if block has no parent.- Specified by:
getParentBlockin 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:XBBlockReturns mode whether this block is data block.- Specified by:
getDataModein interfaceXBBlock- Returns:
- data mode
-
getTerminationMode
@Nonnull public XBBlockTerminationMode getTerminationMode()
Description copied from interface:XBBlockReturns whether this block is using sequence of children ended with termination block.- Specified by:
getTerminationModein interfaceXBBlock- Returns:
- termination mode
-
getAttributes
@Nullable public XBAttribute[] getAttributes()
Description copied from interface:XBBlockGets array of attributes in order of appearance.- Specified by:
getAttributesin interfaceXBBlock- Returns:
- array of attributes
-
getAttributeAt
@Nullable public XBAttribute getAttributeAt(int attributeIndex)
Description copied from interface:XBBlockGets attribute of given index / order.- Specified by:
getAttributeAtin interfaceXBBlock- Parameters:
attributeIndex- index/order of attribute- Returns:
- attribute value
-
getAttributesCount
public int getAttributesCount()
Description copied from interface:XBBlockGets count of attributes.- Specified by:
getAttributesCountin interfaceXBBlock- Returns:
- count of attributes
-
getChildren
public XBBlock[] getChildren()
Description copied from interface:XBBlockGets array of all children blocks.- Specified by:
getChildrenin interfaceXBBlock- Returns:
- list of child blocks
-
getChildAt
@Nullable public XBBlock getChildAt(int childIndex)
Description copied from interface:XBBlockGets child block of given index.- Specified by:
getChildAtin interfaceXBBlock- Parameters:
childIndex- index of child block- Returns:
- child block
-
getChildrenCount
public int getChildrenCount()
Description copied from interface:XBBlockGets count of children.- Specified by:
getChildrenCountin interfaceXBBlock- Returns:
- count of children
-
getData
@Nonnull public java.io.InputStream getData()
Description copied from interface:XBBlockGets block data.
-
getBlockData
@Nonnull public org.exbin.auxiliary.paged_data.BinaryData getBlockData()
Description copied from interface:XBBlockGets block data.- Specified by:
getBlockDatain 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
-
-