-
public final class CodeGeneratorJSON Schema Code Generator. The class my be parameterised either by constructor parameters or by setting the appropriate variables after construction.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public enumCodeGenerator.NestedClassNameOptionpublic final classCodeGenerator.TargetIndexpublic final classCodeGenerator.NameGeneratorpublic final classCodeGenerator.EnumDefaultThis class is intended to look like a StringValue, for when the default value of a string is an enum value.
public abstract classCodeGenerator.CustomClasspublic final classCodeGenerator.CustomClassByURIpublic final classCodeGenerator.CustomClassByFormatpublic final classCodeGenerator.CustomClassByExtensionpublic final classCodeGenerator.AppendableFilterpublic classCodeGenerator.Companion
-
Field Summary
Fields Modifier and Type Field Description private CodeGenerator.NestedClassNameOptionnestedClassNameOptionprivate ParserschemaParserprivate ParsertemplateParserprivate Templatetemplateprivate StringinterfaceTemplateNameprivate TemplateinterfaceTemplateprivate TemplateenumTemplateprivate TargetFileNameindexFileNameprivate StringindexTemplateNameprivate TemplateindexTemplateprivate Function1<TargetFileName, Writer>outputResolverprivate TargetLanguagetargetLanguageprivate StringtemplateNameprivate StringenumTemplateNameprivate StringbasePackageNameprivate StringbaseDirectoryNameprivate BooleanderivePackageFromStructureprivate StringgeneratorCommentprivate ClassIdmarkerInterfaceprivate final Loggerlog
-
Constructor Summary
Constructors Constructor Description CodeGenerator(TargetLanguage targetLanguage, String templateName, String enumTemplateName, String basePackageName, String baseDirectoryName, Boolean derivePackageFromStructure, String generatorComment, ClassId markerInterface, Logger log)
-
Method Summary
Modifier and Type Method Description final CodeGenerator.NestedClassNameOptiongetNestedClassNameOption()final UnitsetNestedClassNameOption(CodeGenerator.NestedClassNameOption nestedClassNameOption)final ParsergetSchemaParser()final UnitsetSchemaParser(Parser schemaParser)final ParsergetTemplateParser()final UnitsetTemplateParser(Parser templateParser)final TemplategetTemplate()final UnitsetTemplate(Template template)final StringgetInterfaceTemplateName()final UnitsetInterfaceTemplateName(String interfaceTemplateName)final TemplategetInterfaceTemplate()final UnitsetInterfaceTemplate(Template interfaceTemplate)final TemplategetEnumTemplate()final UnitsetEnumTemplate(Template enumTemplate)final TargetFileNamegetIndexFileName()final UnitsetIndexFileName(TargetFileName indexFileName)final StringgetIndexTemplateName()final UnitsetIndexTemplateName(String indexTemplateName)final TemplategetIndexTemplate()final UnitsetIndexTemplate(Template indexTemplate)final Function1<TargetFileName, Writer>getOutputResolver()final UnitsetOutputResolver(Function1<TargetFileName, Writer> outputResolver)final TargetLanguagegetTargetLanguage()Target language final UnitsetTargetLanguage(TargetLanguage targetLanguage)Target language final StringgetTemplateName()The primary template to use for the generation of a class final UnitsetTemplateName(String templateName)The primary template to use for the generation of a class final StringgetEnumTemplateName()The primary template to use for the generation of an enum final UnitsetEnumTemplateName(String enumTemplateName)The primary template to use for the generation of an enum final StringgetBasePackageName()The base package name for the generated classes final UnitsetBasePackageName(String basePackageName)The base package name for the generated classes final StringgetBaseDirectoryName()The base output directory for generated files final UnitsetBaseDirectoryName(String baseDirectoryName)The base output directory for generated files final BooleangetDerivePackageFromStructure()A boolean flag to indicate the schema files in subdirectories are to be output to sub-packages final UnitsetDerivePackageFromStructure(Boolean derivePackageFromStructure)A boolean flag to indicate the schema files in subdirectories are to be output to sub-packages final StringgetGeneratorComment()A comment to add to the header of generated files final UnitsetGeneratorComment(String generatorComment)A comment to add to the header of generated files final ClassIdgetMarkerInterface()An optional marker interface to add to each generated class final UnitsetMarkerInterface(ClassId markerInterface)An optional marker interface to add to each generated class final LoggergetLog()A Logger object for the output of logging messages final UnitsetTemplateDirectory(File directory, String suffix)final Unitgenerate(File inputFiles)Generate classes for a set of schema files (specified as a varargarray).final Unitgenerate(List<File> inputFiles)Generate classes for a set of files (specified as a List). final UnitgenerateFromPaths(Path inputPaths)Generate classes for a set of schema files (specified as a varargarray of Path).final UnitgenerateFromPaths(List<Path> inputPaths)Generate classes for a set of files (specified as a List of Path). final UnitgenerateClass(JSONSchema schema, String className, List<String> subDirectories)Generate a single class. final UnitgenerateClasses(List<Pair<JSONSchema, String>> schemaList, List<String> subDirectories)Generate classes as specified by a list of pairs - Schema and class name. final UnitgenerateAll(JSONValue base, JSONPointer pointer, List<String> subDirectories, Function1<String, Boolean> filter)Generate classes for all definitions in a composite file (e.g. final UnitaddCustomClassByURI(URI uri, String qualifiedClassName)final UnitaddCustomClassByURI(URI uri, String className, String packageName)final UnitaddCustomClassByURI(URI uri, ClassId classId)final UnitaddCustomClassByFormat(String name, String qualifiedClassName)final UnitaddCustomClassByFormat(String name, String className, String packageName)final UnitaddCustomClassByFormat(String name, ClassId classId)final UnitaddCustomClassByExtension(String extensionId, Object extensionValue, String qualifiedClassName)final UnitaddCustomClassByExtension(String extensionId, Object extensionValue, String className, String packageName)final UnitaddCustomClassByExtension(String extensionId, Object extensionValue, ClassId classId)-
-
Method Detail
-
getNestedClassNameOption
final CodeGenerator.NestedClassNameOption getNestedClassNameOption()
-
setNestedClassNameOption
final Unit setNestedClassNameOption(CodeGenerator.NestedClassNameOption nestedClassNameOption)
-
getSchemaParser
final Parser getSchemaParser()
-
setSchemaParser
final Unit setSchemaParser(Parser schemaParser)
-
getTemplateParser
final Parser getTemplateParser()
-
setTemplateParser
final Unit setTemplateParser(Parser templateParser)
-
getTemplate
final Template getTemplate()
-
setTemplate
final Unit setTemplate(Template template)
-
getInterfaceTemplateName
final String getInterfaceTemplateName()
-
setInterfaceTemplateName
final Unit setInterfaceTemplateName(String interfaceTemplateName)
-
getInterfaceTemplate
final Template getInterfaceTemplate()
-
setInterfaceTemplate
final Unit setInterfaceTemplate(Template interfaceTemplate)
-
getEnumTemplate
final Template getEnumTemplate()
-
setEnumTemplate
final Unit setEnumTemplate(Template enumTemplate)
-
getIndexFileName
final TargetFileName getIndexFileName()
-
setIndexFileName
final Unit setIndexFileName(TargetFileName indexFileName)
-
getIndexTemplateName
final String getIndexTemplateName()
-
setIndexTemplateName
final Unit setIndexTemplateName(String indexTemplateName)
-
getIndexTemplate
final Template getIndexTemplate()
-
setIndexTemplate
final Unit setIndexTemplate(Template indexTemplate)
-
getOutputResolver
final Function1<TargetFileName, Writer> getOutputResolver()
-
setOutputResolver
final Unit setOutputResolver(Function1<TargetFileName, Writer> outputResolver)
-
getTargetLanguage
final TargetLanguage getTargetLanguage()
Target language
-
setTargetLanguage
final Unit setTargetLanguage(TargetLanguage targetLanguage)
Target language
-
getTemplateName
final String getTemplateName()
The primary template to use for the generation of a class
-
setTemplateName
final Unit setTemplateName(String templateName)
The primary template to use for the generation of a class
-
getEnumTemplateName
final String getEnumTemplateName()
The primary template to use for the generation of an enum
-
setEnumTemplateName
final Unit setEnumTemplateName(String enumTemplateName)
The primary template to use for the generation of an enum
-
getBasePackageName
final String getBasePackageName()
The base package name for the generated classes
-
setBasePackageName
final Unit setBasePackageName(String basePackageName)
The base package name for the generated classes
-
getBaseDirectoryName
final String getBaseDirectoryName()
The base output directory for generated files
-
setBaseDirectoryName
final Unit setBaseDirectoryName(String baseDirectoryName)
The base output directory for generated files
-
getDerivePackageFromStructure
final Boolean getDerivePackageFromStructure()
A boolean flag to indicate the schema files in subdirectories are to be output to sub-packages
-
setDerivePackageFromStructure
final Unit setDerivePackageFromStructure(Boolean derivePackageFromStructure)
A boolean flag to indicate the schema files in subdirectories are to be output to sub-packages
-
getGeneratorComment
final String getGeneratorComment()
A comment to add to the header of generated files
-
setGeneratorComment
final Unit setGeneratorComment(String generatorComment)
A comment to add to the header of generated files
-
getMarkerInterface
final ClassId getMarkerInterface()
An optional marker interface to add to each generated class
-
setMarkerInterface
final Unit setMarkerInterface(ClassId markerInterface)
An optional marker interface to add to each generated class
-
getLog
final Logger getLog()
A Logger object for the output of logging messages
-
setTemplateDirectory
final Unit setTemplateDirectory(File directory, String suffix)
-
generate
final Unit generate(File inputFiles)
Generate classes for a set of schema files (specified as a
varargarray). Directories will be traversed recursively.- Parameters:
inputFiles- the files
-
generate
final Unit generate(List<File> inputFiles)
Generate classes for a set of files (specified as a List). Directories will be traversed recursively.
- Parameters:
inputFiles- the list of files
-
generateFromPaths
final Unit generateFromPaths(Path inputPaths)
Generate classes for a set of schema files (specified as a
varargarray of Path). Directories will be traversed recursively.- Parameters:
inputPaths- the files
-
generateFromPaths
final Unit generateFromPaths(List<Path> inputPaths)
Generate classes for a set of files (specified as a List of Path). Directories will be traversed recursively.
- Parameters:
inputPaths- the list of files
-
generateClass
final Unit generateClass(JSONSchema schema, String className, List<String> subDirectories)
Generate a single class.
- Parameters:
schema- the JSONSchemaclassName- the class namesubDirectories- list of subdirectory names to use for the output file
-
generateClasses
final Unit generateClasses(List<Pair<JSONSchema, String>> schemaList, List<String> subDirectories)
Generate classes as specified by a list of pairs - Schema and class name.
-
generateAll
final Unit generateAll(JSONValue base, JSONPointer pointer, List<String> subDirectories, Function1<String, Boolean> filter)
Generate classes for all definitions in a composite file (e.g. schema definitions embedded in an OpenAPI or Swagger document).
- Parameters:
base- the base of the composite objectpointer- pointer to the structure containing the schema definitions (e.g.subDirectories- list of subdirectory names to use for the output filesfilter- optional filter to select which classes to include (by name)
-
addCustomClassByURI
final Unit addCustomClassByURI(URI uri, String qualifiedClassName)
-
addCustomClassByURI
final Unit addCustomClassByURI(URI uri, String className, String packageName)
-
addCustomClassByURI
final Unit addCustomClassByURI(URI uri, ClassId classId)
-
addCustomClassByFormat
final Unit addCustomClassByFormat(String name, String qualifiedClassName)
-
addCustomClassByFormat
final Unit addCustomClassByFormat(String name, String className, String packageName)
-
addCustomClassByFormat
final Unit addCustomClassByFormat(String name, ClassId classId)
-
addCustomClassByExtension
final Unit addCustomClassByExtension(String extensionId, Object extensionValue, String qualifiedClassName)
-
addCustomClassByExtension
final Unit addCustomClassByExtension(String extensionId, Object extensionValue, String className, String packageName)
-
addCustomClassByExtension
final Unit addCustomClassByExtension(String extensionId, Object extensionValue, ClassId classId)
-
-
-
-