Package org.xwiki.rendering.block
Class AbstractBlock
- java.lang.Object
-
- org.xwiki.rendering.block.AbstractBlock
-
- Direct Known Subclasses:
AbstractMacroBlock,BulletedListBlock,CompositeBlock,DefinitionDescriptionBlock,DefinitionListBlock,DefinitionTermBlock,EmptyLinesBlock,FigureBlock,FigureCaptionBlock,FormatBlock,GroupBlock,HeaderBlock,HorizontalLineBlock,IdBlock,ImageBlock,LinkBlock,ListItemBlock,MetaDataBlock,NewLineBlock,NumberedListBlock,ParagraphBlock,QuotationBlock,QuotationLineBlock,RawBlock,SectionBlock,SpaceBlock,SpecialSymbolBlock,TableBlock,TableCellBlock,TableRowBlock,VerbatimBlock,WordBlock
public abstract class AbstractBlock extends Object implements Block
Implementation for Block operations. All blocks should extend this class. Supports the notion of generic parameters which can be added to a block (seegetParameter(String)for more details.- Since:
- 1.5M2
- Version:
- $Id: 0b3886c2e5bb03085740c7116d96bc2674b63eef $
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.xwiki.rendering.block.Block
Block.Axes
-
-
Field Summary
-
Fields inherited from interface org.xwiki.rendering.block.Block
LIST_BLOCK_TYPE
-
-
Constructor Summary
Constructors Constructor Description AbstractBlock()Empty constructor to construct an empty block.AbstractBlock(List<? extends Block> childrenBlocks)Constructs a block with children blocks.AbstractBlock(List<? extends Block> childrenBlocks, Map<String,String> parameters)Construct a block with children blocks and parameters.AbstractBlock(Map<String,String> parameters)Construct a block with parameters.AbstractBlock(Block childBlock)Constructs a block with a child block.AbstractBlock(Block childBlock, Map<String,String> parameters)Construct a block with a child block and parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddChild(Block blockToAdd)Helper method to add a single child block to the end of the children list of the current block.voidaddChildren(List<? extends Block> blocksToAdd)Adds several children blocks to the end of the children list of the current block.voidafter(Listener listener)SendListenerevents corresponding to the end of the block.voidbefore(Listener listener)SendListenerevents corresponding to the start of the block.Blockclone()Blockclone(BlockFilter blockFilter)Return a copy of the block with filtered children.booleanequals(Object obj)<T extends Block>
List<T>getBlocks(BlockMatcher matcher, Block.Axes axes)Get all blocks following providedBlockMatcherandBlock.Axes.List<Block>getChildren()Gets all children blocks.<T extends Block>
TgetFirstBlock(BlockMatcher matcher, Block.Axes axes)Get the first matched block in the providedBlock.Axes.BlockgetNextSibling()StringgetParameter(String name)A Parameter is a generic key/value which can be used to add metadata to a block.Map<String,String>getParameters()BlockgetParent()Get the parent block.BlockgetPreviousSibling()BlockgetRoot()Gets the top level Block.inthashCode()longindexOf(Block child)Find the index of the block in the tree.voidinsertChildAfter(Block blockToInsert, Block previousBlock)Helper method to add a single child block to the current block after the provided existing child block.voidinsertChildBefore(Block blockToInsert, Block nextBlock)Helper method to add a single child block to the current block before the provided existing child block.voidremoveBlock(Block childBlockToRemove)Removes a Block.voidreplaceChild(List<Block> newBlocks, Block oldBlock)Replaces an existing children block with the passed new blocks.voidreplaceChild(Block newBlock, Block oldBlock)Replaces an existing children block with the passed new block.voidsetChildren(List<? extends Block> children)Replace current children by the provided list ofBlocks.voidsetNextSiblingBlock(Block nextSiblingBlock)voidsetParameter(String name, String value)Set a parameter on the current block.voidsetParameters(Map<String,String> parameters)Set several parameters at once.voidsetParent(Block parentBlock)Sets the parent block.voidsetPreviousSiblingBlock(Block previousSiblingBlock)voidtraverse(Listener listener)Let the block sendListenerevents corresponding to its content.
-
-
-
Constructor Detail
-
AbstractBlock
public AbstractBlock()
Empty constructor to construct an empty block.
-
AbstractBlock
public AbstractBlock(Map<String,String> parameters)
Construct a block with parameters.- Parameters:
parameters- the parameters to set
-
AbstractBlock
public AbstractBlock(Block childBlock)
Constructs a block with a child block.- Parameters:
childBlock- the child block of this block- Since:
- 3.0M1
-
AbstractBlock
public AbstractBlock(List<? extends Block> childrenBlocks)
Constructs a block with children blocks.- Parameters:
childrenBlocks- the list of children blocks of the block to construct- Since:
- 3.0M1
-
AbstractBlock
public AbstractBlock(Block childBlock, Map<String,String> parameters)
Construct a block with a child block and parameters.- Parameters:
childBlock- the child block of this blockparameters- the parameters to set- Since:
- 3.0M1
-
-
Method Detail
-
addChild
public void addChild(Block blockToAdd)
Description copied from interface:BlockHelper method to add a single child block to the end of the children list of the current block. For adding several blocks at once useBlock.addChildren(java.util.List).
-
addChildren
public void addChildren(List<? extends Block> blocksToAdd)
Description copied from interface:BlockAdds several children blocks to the end of the children list of the current block. For example a bold sentence is made up of a Bold block to which the different words making up the text have been added to.- Specified by:
addChildrenin interfaceBlock- Parameters:
blocksToAdd- the children blocks to add
-
setChildren
public void setChildren(List<? extends Block> children)
Description copied from interface:BlockReplace current children by the provided list ofBlocks.- Specified by:
setChildrenin interfaceBlock- Parameters:
children- the new children
-
setNextSiblingBlock
public void setNextSiblingBlock(Block nextSiblingBlock)
- Specified by:
setNextSiblingBlockin interfaceBlock- Parameters:
nextSiblingBlock- seeBlock.getNextSibling()
-
setPreviousSiblingBlock
public void setPreviousSiblingBlock(Block previousSiblingBlock)
- Specified by:
setPreviousSiblingBlockin interfaceBlock- Parameters:
previousSiblingBlock- seeBlock.getPreviousSibling()()}
-
insertChildBefore
public void insertChildBefore(Block blockToInsert, Block nextBlock)
Description copied from interface:BlockHelper method to add a single child block to the current block before the provided existing child block. For adding several blocks at once useBlock.addChildren(java.util.List).- Specified by:
insertChildBeforein interfaceBlock- Parameters:
blockToInsert- the child block to addnextBlock- the child block that will be just after the added block
-
insertChildAfter
public void insertChildAfter(Block blockToInsert, Block previousBlock)
Description copied from interface:BlockHelper method to add a single child block to the current block after the provided existing child block. For adding several blocks at once useBlock.addChildren(java.util.List).- Specified by:
insertChildAfterin interfaceBlock- Parameters:
blockToInsert- the child block to addpreviousBlock- the child block that will be just before the added block
-
replaceChild
public void replaceChild(Block newBlock, Block oldBlock)
Description copied from interface:BlockReplaces an existing children block with the passed new block. Also sets the new block's parent to be the current block.- Specified by:
replaceChildin interfaceBlock- Parameters:
newBlock- the new block to replace the old block witholdBlock- the block to replace with the new block
-
replaceChild
public void replaceChild(List<Block> newBlocks, Block oldBlock)
Description copied from interface:BlockReplaces an existing children block with the passed new blocks. Also sets the new block's parents to be the current block.- Specified by:
replaceChildin interfaceBlock- Parameters:
newBlocks- the new blocks to replace the old block witholdBlock- the block to replace with the new blocks
-
indexOf
public long indexOf(Block child)
Find the index of the block in the tree.- Parameters:
child- the block for which to find the index- Returns:
- the index of the passed block in the tree, 0 is the current block and -1 means that it was not found
- Since:
- 10.10RC1
-
getChildren
public List<Block> getChildren()
Description copied from interface:BlockGets all children blocks.- Specified by:
getChildrenin interfaceBlock- Returns:
- the children blocks
- See Also:
Block.addChildren(java.util.List)
-
getParent
public Block getParent()
Description copied from interface:BlockGet the parent block. All blocks have a parent and the top level parent is theXDOMobject.
-
getParameters
public Map<String,String> getParameters()
- Specified by:
getParametersin interfaceBlock- Returns:
- all parameters
-
getParameter
public String getParameter(String name)
Description copied from interface:BlockA Parameter is a generic key/value which can be used to add metadata to a block. What is done with the metadata depends on the Renderer's implementations. For example the XHTML Renderer adds them as Element attributes.- Specified by:
getParameterin interfaceBlock- Parameters:
name- the name of the parameter to return- Returns:
- the parameter or null if the parameter doesn't exist
-
setParameter
public void setParameter(String name, String value)
Description copied from interface:BlockSet a parameter on the current block. SeeBlock.getParameter(String)for more details.- Specified by:
setParameterin interfaceBlock- Parameters:
name- the parameter's namevalue- the parameter's value
-
setParameters
public void setParameters(Map<String,String> parameters)
Description copied from interface:BlockSet several parameters at once.- Specified by:
setParametersin interfaceBlock- Parameters:
parameters- the parameters to set- See Also:
Block.getParameter(String)
-
setParent
public void setParent(Block parentBlock)
Description copied from interface:BlockSets the parent block.
-
getRoot
public Block getRoot()
Description copied from interface:BlockGets the top level Block. If the current block is the top level Block, it return itself.
-
getNextSibling
public Block getNextSibling()
- Specified by:
getNextSiblingin interfaceBlock- Returns:
- the next sibling block or null if there's no next sibling
-
getPreviousSibling
public Block getPreviousSibling()
- Specified by:
getPreviousSiblingin interfaceBlock- Returns:
- the previous sibling block or null if there's no previous sibling
-
removeBlock
public void removeBlock(Block childBlockToRemove)
Description copied from interface:BlockRemoves a Block.- Specified by:
removeBlockin interfaceBlock- Parameters:
childBlockToRemove- the child block to remove
-
clone
public Block clone()
- Specified by:
clonein interfaceBlock- Overrides:
clonein classObject- Returns:
- the cloned Block
- See Also:
Object.clone()
-
clone
public Block clone(BlockFilter blockFilter)
Return a copy of the block with filtered children.
-
traverse
public void traverse(Listener listener)
Description copied from interface:BlockLet the block sendListenerevents corresponding to its content. For example a Paragraph block will send theListener.beginParagraph(java.util.Map<java.lang.String, java.lang.String>)andListener.endParagraph(java.util.Map<java.lang.String, java.lang.String>)events when this method is called.
-
before
public void before(Listener listener)
SendListenerevents corresponding to the start of the block. For example for a Bold block, this allows an XHTML Listener (aka a Renderer) to output<b>.- Parameters:
listener- the listener that will receive the events sent by this block before its children blocks have emitted their own events.
-
after
public void after(Listener listener)
SendListenerevents corresponding to the end of the block. For example for a Bold block, this allows an XHTML Listener (aka a Renderer) to output</b>.- Parameters:
listener- the listener that will receive the events sent by this block before its children blocks have emitted their own events.
-
getBlocks
public <T extends Block> List<T> getBlocks(BlockMatcher matcher, Block.Axes axes)
Description copied from interface:BlockGet all blocks following providedBlockMatcherandBlock.Axes.
-
getFirstBlock
public <T extends Block> T getFirstBlock(BlockMatcher matcher, Block.Axes axes)
Description copied from interface:BlockGet the first matched block in the providedBlock.Axes.- Specified by:
getFirstBlockin interfaceBlock- Type Parameters:
T- the class of the Block to return- Parameters:
matcher- indicate which block to stop toaxes- indicate the search axes- Returns:
- the matched
Block, null if none was found
-
-