public class JavaDataTemplateGenerator extends JavaCodeGeneratorBase
JClass of data templates from ClassTemplateSpec.| Modifier and Type | Class and Description |
|---|---|
static class |
JavaDataTemplateGenerator.Config |
| Modifier and Type | Field and Description |
|---|---|
static java.util.Map<com.linkedin.data.schema.DataSchema,java.lang.Class<?>> |
PredefinedJavaClasses
Rest.li pre-defines some commonly used Java data template classes such as
IntegerArray. |
_arraysClass, _byteStringClass, _checkedUtilClass, _collectionClass, _customClass, _dataListClass, _dataMapClass, _dataTemplateUtilClass, _disallowNullSetMode, _getModeClass, _mapClass, _maskMapClass, _objectClass, _pathSpecClass, _setModeClass, _strictGetMode, _stringBuilderClass, _stringClass, GENERATOR_DEFAULT_PACKAGE, ROOT_PATH, SUPER, THIS| Constructor and Description |
|---|
JavaDataTemplateGenerator(JavaDataTemplateGenerator.Config config) |
JavaDataTemplateGenerator(java.lang.String defaultPackage) |
JavaDataTemplateGenerator(java.lang.String defaultPackage,
java.lang.String rootPath) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
extendRecordBaseClass(com.sun.codemodel.JDefinedClass templateClass) |
protected void |
extendUnionBaseClass(com.sun.codemodel.JDefinedClass unionClass) |
protected void |
extendWrappingArrayBaseClass(com.sun.codemodel.JClass itemJClass,
com.sun.codemodel.JDefinedClass arrayClass) |
protected void |
extendWrappingMapBaseClass(com.sun.codemodel.JClass valueJClass,
com.sun.codemodel.JDefinedClass mapClass) |
com.sun.codemodel.JClass |
generate(ClassTemplateSpec classTemplateSpec) |
protected void |
generateArray(com.sun.codemodel.JDefinedClass arrayClass,
ArrayTemplateSpec arrayDataTemplateSpec) |
protected void |
generateCoercerOverrides(com.sun.codemodel.JDefinedClass wrapperClass,
ClassTemplateSpec itemSpec,
com.linkedin.data.schema.DataSchema itemSchema,
CustomInfoSpec customInfoSpec,
boolean tolerateNullForCoerceOutput) |
protected void |
generateEnum(com.sun.codemodel.JDefinedClass enumClass,
EnumTemplateSpec enumSpec) |
protected void |
generateFixed(com.sun.codemodel.JDefinedClass fixedClass,
FixedTemplateSpec fixedSpec) |
protected void |
generateMap(com.sun.codemodel.JDefinedClass mapClass,
MapTemplateSpec mapSpec) |
protected void |
generateRecord(com.sun.codemodel.JDefinedClass templateClass,
RecordTemplateSpec recordSpec) |
protected void |
generateTyperef(com.sun.codemodel.JDefinedClass typerefClass,
TyperefTemplateSpec typerefSpec) |
protected void |
generateUnion(com.sun.codemodel.JDefinedClass unionClass,
UnionTemplateSpec unionSpec) |
java.util.Map<com.sun.codemodel.JDefinedClass,ClassTemplateSpec> |
getGeneratedClasses() |
escapeReserved, getCodeModel, getPackage, getPackage, getSizeBoundStringLiteral, isReservedpublic static final java.util.Map<com.linkedin.data.schema.DataSchema,java.lang.Class<?>> PredefinedJavaClasses
IntegerArray.
This generator will directly use these classes instead of generate them anew.public JavaDataTemplateGenerator(JavaDataTemplateGenerator.Config config)
public JavaDataTemplateGenerator(java.lang.String defaultPackage)
defaultPackage - package to be used when a NamedDataSchema does not specify a namespacepublic JavaDataTemplateGenerator(java.lang.String defaultPackage,
java.lang.String rootPath)
defaultPackage - package to be used when a NamedDataSchema does not specify a namespacerootPath - root path to relativize the locationpublic java.util.Map<com.sun.codemodel.JDefinedClass,ClassTemplateSpec> getGeneratedClasses()
public com.sun.codemodel.JClass generate(ClassTemplateSpec classTemplateSpec)
protected void generateArray(com.sun.codemodel.JDefinedClass arrayClass,
ArrayTemplateSpec arrayDataTemplateSpec)
throws com.sun.codemodel.JClassAlreadyExistsException
com.sun.codemodel.JClassAlreadyExistsExceptionprotected void extendWrappingArrayBaseClass(com.sun.codemodel.JClass itemJClass,
com.sun.codemodel.JDefinedClass arrayClass)
protected void generateEnum(com.sun.codemodel.JDefinedClass enumClass,
EnumTemplateSpec enumSpec)
protected void generateFixed(com.sun.codemodel.JDefinedClass fixedClass,
FixedTemplateSpec fixedSpec)
protected void generateMap(com.sun.codemodel.JDefinedClass mapClass,
MapTemplateSpec mapSpec)
throws com.sun.codemodel.JClassAlreadyExistsException
com.sun.codemodel.JClassAlreadyExistsExceptionprotected void extendWrappingMapBaseClass(com.sun.codemodel.JClass valueJClass,
com.sun.codemodel.JDefinedClass mapClass)
protected void generateRecord(com.sun.codemodel.JDefinedClass templateClass,
RecordTemplateSpec recordSpec)
throws com.sun.codemodel.JClassAlreadyExistsException
com.sun.codemodel.JClassAlreadyExistsExceptionprotected void extendRecordBaseClass(com.sun.codemodel.JDefinedClass templateClass)
protected void generateTyperef(com.sun.codemodel.JDefinedClass typerefClass,
TyperefTemplateSpec typerefSpec)
protected void generateUnion(com.sun.codemodel.JDefinedClass unionClass,
UnionTemplateSpec unionSpec)
throws com.sun.codemodel.JClassAlreadyExistsException
com.sun.codemodel.JClassAlreadyExistsExceptionprotected void extendUnionBaseClass(com.sun.codemodel.JDefinedClass unionClass)
protected void generateCoercerOverrides(com.sun.codemodel.JDefinedClass wrapperClass,
ClassTemplateSpec itemSpec,
com.linkedin.data.schema.DataSchema itemSchema,
CustomInfoSpec customInfoSpec,
boolean tolerateNullForCoerceOutput)