Package com.cloudimpl.codegen4j
Class CodeBlock
- java.lang.Object
-
- com.cloudimpl.codegen4j.CodeBlock
-
- Direct Known Subclasses:
AnnoymousFunctionBlock,CaseBlock,ConditionalBlock,PermissionBlock,RawCodeBlock,StaticBlock,SwitchBlock,SynchronousBlock
public abstract class CodeBlock extends Object
- Author:
- nuwansa
-
-
Field Summary
Fields Modifier and Type Field Description protected List<CodeBlock>codeBlocks
-
Constructor Summary
Constructors Constructor Description CodeBlock()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddStmt(Statement stmt)protected Collection<String>collectImports(Set<String> imports)RawCodeBlockcreateBlock(String header)ConditionalBlockcreateElse(String args)ConditionalBlockcreateElseIf(String args)ConditionalBlockcreateIf(String args)static StringcreateName(String prefix, String name)SwitchBlockcreateSwitch(String switchName)SynchronousBlockcreateSynchronousBlock(String args)protected voiddisableBlockSpace()protected StringBuildergenerateCode(int tabIndex, StringBuilder builder)protected abstract StatementgenerateHeader()protected <T> TpushBlock(CodeBlock block)Statementstmt()Varvar(String type, String var)<T extends CodeBlock>
TwithAnnotation(String annotation)<T extends CodeBlock>
TwithImports(String... imports)ReturnStatementwithReturnStatment(String returnVal)
-
-
-
Method Detail
-
addStmt
protected void addStmt(Statement stmt)
-
collectImports
protected Collection<String> collectImports(Set<String> imports)
-
disableBlockSpace
protected final void disableBlockSpace()
-
stmt
public Statement stmt()
-
withReturnStatment
public ReturnStatement withReturnStatment(String returnVal)
-
createSwitch
public SwitchBlock createSwitch(String switchName)
-
createBlock
public RawCodeBlock createBlock(String header)
-
createIf
public ConditionalBlock createIf(String args)
-
createElseIf
public ConditionalBlock createElseIf(String args)
-
createElse
public ConditionalBlock createElse(String args)
-
createSynchronousBlock
public SynchronousBlock createSynchronousBlock(String args)
-
pushBlock
protected <T> T pushBlock(CodeBlock block)
-
generateHeader
protected abstract Statement generateHeader()
-
generateCode
protected StringBuilder generateCode(int tabIndex, StringBuilder builder)
-
-