Class BaseBlockFor
- All Implemented Interfaces:
io.github.mmm.code.api.block.CodeBlock, io.github.mmm.code.api.block.CodeBlockFor, io.github.mmm.code.api.block.CodeBlockStatement, io.github.mmm.code.api.CodeWithContext, io.github.mmm.code.api.copy.CodeNodeItemCopyable<io.github.mmm.code.api.block.CodeBlock, io.github.mmm.code.api.block.CodeBlockFor>, io.github.mmm.code.api.item.CodeItem, io.github.mmm.code.api.item.CodeItemWithVariables, io.github.mmm.code.api.item.CodeMutableItem, io.github.mmm.code.api.node.CodeNode, io.github.mmm.code.api.node.CodeNodeItem, io.github.mmm.code.api.object.CodeMutable, io.github.mmm.code.api.statement.CodeStatement
public class BaseBlockFor
extends BaseBlockStatement
implements io.github.mmm.code.api.block.CodeBlockFor
Base implementation of
CodeBlockFor.- Since:
- 1.0.0
- Author:
- Joerg Hohwiller (hohwille at users.sourceforge.net)
-
Field Summary
Fields inherited from interface io.github.mmm.code.api.item.CodeItem
DEFAULT_INDENT, DEFAULT_NEWLINE -
Constructor Summary
ConstructorsConstructorDescriptionBaseBlockFor(BaseBlockFor template, io.github.mmm.code.api.copy.CodeCopyMapper mapper) The copy-constructor.BaseBlockFor(BaseBlock parent, io.github.mmm.code.api.expression.CodeForExpression expression, io.github.mmm.code.api.statement.CodeStatement... statements) The constructor.BaseBlockFor(BaseBlock parent, io.github.mmm.code.api.expression.CodeForExpression expression, List<io.github.mmm.code.api.statement.CodeStatement> statements) The constructor. -
Method Summary
Modifier and TypeMethodDescriptioncopy()copy(io.github.mmm.code.api.copy.CodeCopyMapper mapper) io.github.mmm.code.api.expression.CodeForExpressionprotected voidwritePrefix(Appendable sink, String newline, String defaultIndent, String currentIndent) Writes a prefix e.g. for loops.Methods inherited from class BaseBlockStatement
getParent, getVariableFromParent, setParentMethods inherited from class BaseBlock
add, addText, doSetImmutable, doWrite, getStatements, getVariable, getVariable, writeSuffixMethods inherited from class BaseNodeItem
doInitialize, getContainerItem, getContainerItemDeclared, getContext, getLanguage, getSource, toPathStringMethods inherited from class BaseMutableItem
doCopyNode, doCopyNodeUnsafe, doMapList, doneInitialize, getDefaultCopyMapper, getDefaultEncoding, getReflectiveObject, getSourceCodeObject, initialize, initialize, isImmutable, isInitialized, isInitializing, isSystemImmutable, isSystemImmutable, makeImmutable, makeImmutable, setImmutable, setImmutableIfNotSystemImmutable, verifyMutalbe, writeItemMethods inherited from class BaseItem
getOwningType, getSourceCode, getSpaces, toString, writeMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.github.mmm.code.api.block.CodeBlock
add, addText, getStatements, getVariable, getVariable, isEmptyMethods inherited from interface io.github.mmm.code.api.block.CodeBlockStatement
getParentMethods inherited from interface io.github.mmm.code.api.item.CodeItem
getLanguage, getSourceCode, write, write, write, write, write, writeMethods inherited from interface io.github.mmm.code.api.object.CodeMutable
isImmutable, isMutableMethods inherited from interface io.github.mmm.code.api.item.CodeMutableItem
getReflectiveObject, setImmutableMethods inherited from interface io.github.mmm.code.api.copy.CodeNodeItemCopyable
getParentMethods inherited from interface io.github.mmm.code.api.CodeWithContext
getContext, getSource
-
Constructor Details
-
BaseBlockFor
public BaseBlockFor(BaseBlock parent, io.github.mmm.code.api.expression.CodeForExpression expression, io.github.mmm.code.api.statement.CodeStatement... statements) The constructor.- Parameters:
parent- theparent.expression- theexpression.statements- thestatements.
-
BaseBlockFor
public BaseBlockFor(BaseBlock parent, io.github.mmm.code.api.expression.CodeForExpression expression, List<io.github.mmm.code.api.statement.CodeStatement> statements) The constructor.- Parameters:
parent- theparent.expression- theexpression.statements- thestatements.
-
BaseBlockFor
The copy-constructor.- Parameters:
template- theBaseBlockStatementto copy.mapper- theCodeCopyMapper.
-
-
Method Details
-
getExpression
public io.github.mmm.code.api.expression.CodeForExpression getExpression()- Specified by:
getExpressionin interfaceio.github.mmm.code.api.block.CodeBlockFor
-
copy
- Specified by:
copyin interfaceio.github.mmm.code.api.block.CodeBlock- Specified by:
copyin interfaceio.github.mmm.code.api.block.CodeBlockFor- Specified by:
copyin interfaceio.github.mmm.code.api.block.CodeBlockStatement- Specified by:
copyin interfaceio.github.mmm.code.api.item.CodeMutableItem- Specified by:
copyin interfaceio.github.mmm.code.api.node.CodeNodeItem- Specified by:
copyin interfaceio.github.mmm.code.api.copy.CodeNodeItemCopyable<io.github.mmm.code.api.block.CodeBlock, io.github.mmm.code.api.block.CodeBlockFor>
-
copy
- Specified by:
copyin interfaceio.github.mmm.code.api.item.CodeMutableItem- Specified by:
copyin interfaceio.github.mmm.code.api.node.CodeNodeItem- Specified by:
copyin interfaceio.github.mmm.code.api.copy.CodeNodeItemCopyable<io.github.mmm.code.api.block.CodeBlock, io.github.mmm.code.api.block.CodeBlockFor>
-
writePrefix
protected void writePrefix(Appendable sink, String newline, String defaultIndent, String currentIndent) throws IOException Description copied from class:BaseBlockWrites a prefix e.g. for loops.- Overrides:
writePrefixin classBaseBlock- Parameters:
sink- theAppendablewhere toappendthe code from thisCodeItem.newline- the newlineString.defaultIndent- theStringused for indentation (e.g. a number of spaces to insert per indent level).currentIndent- the current indent (number of spaces). Initially the empty string (""). Before a recursion theindentwill be appended.- Throws:
IOException- if thrown byAppendable.
-