Package pl.metaprogramming.codegen.java
Class JavaGenerator
-
- All Implemented Interfaces:
-
pl.metaprogramming.codegen.Generator
public abstract class JavaGenerator<T extends Model> implements Generator<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public interfaceJavaGenerator.Interceptor
-
Field Summary
Fields Modifier and Type Field Description private final Tmodelprivate final CodeIndexcodeIndexprivate final Map<TypeOfCode<?>, ClassBuilderConfigurator<?>>codeBuildersprivate final CodegenParamsparamsprivate final DataTypeMapperdataTypeMapperprivate List<PackageInfoCm>packageInfoListprivate final List<CodeGenerationTask<?>>codesToGenerate
-
Constructor Summary
Constructors Constructor Description JavaGenerator(JavaGeneratorBuilder<T, ?, ?> configurator)
-
Method Summary
-
-
Constructor Detail
-
JavaGenerator
JavaGenerator(JavaGeneratorBuilder<T, ?, ?> configurator)
-
-
Method Detail
-
getCodeIndex
final CodeIndex getCodeIndex()
-
getCodeBuilders
final Map<TypeOfCode<?>, ClassBuilderConfigurator<?>> getCodeBuilders()
-
getParams
final CodegenParams getParams()
-
getDataTypeMapper
final DataTypeMapper getDataTypeMapper()
-
getPackageInfoList
final List<PackageInfoCm> getPackageInfoList()
-
setPackageInfoList
final Unit setPackageInfoList(List<PackageInfoCm> packageInfoList)
-
getCodesToGenerate
List<CodeGenerationTask<?>> getCodesToGenerate()
-
runInterceptors
final Unit runInterceptors()
-
forceGeneration
final <M extends Any> ClassCd forceGeneration(TypeOfCode<M> typeOfCode, M model)
Force generation code of typeOfCode for model.
-
forceGeneration
final ClassCd forceGeneration(TypeOfCodeWithNoModel typeOfCode)
Force generation code of typeOfCode (with no model).
-
registerExternalClass
final <M extends Any> Unit registerExternalClass(TypeOfCode<M> typeOfCode, M model, ClassCd classCd)
Register in CodeIndex the external class (not generated class) as representation for model and typeOfCode.
-
register
final ClassBuilder<Void> register(TypeOfCodeWithNoModel typeOfCode)
Register in CodeIndex the code of typeOfCode with no model.
-
register
final <M extends Any> ClassBuilder<M> register(TypeOfCode<M> typeOfCode, M model)
Register in CodeIndex the code of typeOfCode for model.
-
register
final <M extends DataType> ClassBuilder<M> register(TypeOfCode<M> typeOfCode, DataSchema schema)
Register in CodeIndex the code of typeOfCode for schema.
Note schema.dataType should be an instance of NamedDataType. The schema.dataType is taken as model and schema.dataType.code as model name.
-
-
-
-