Class BaseObjectCodeWriter
java.lang.Object
com.metaobjects.io.MetaDataWriter
com.metaobjects.generator.GeneratorIOWriter<BaseObjectCodeWriter>
com.metaobjects.generator.direct.FileDirectWriter<BaseObjectCodeWriter>
com.metaobjects.generator.direct.object.BaseObjectCodeWriter
- All Implemented Interfaces:
com.metaobjects.io.MetaDataIO
- Direct Known Subclasses:
JavaCodeWriter
Base class for Object Code Writers that support language-agnostic object generation.
This provides common functionality for writing code from MetaObjects while allowing
language-specific implementations to customize syntax and conventions.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected booleanprotected GenerationContextprotected booleanprotected Collection<com.metaobjects.object.MetaObject> protected Stringprotected com.metaobjects.object.MetaObjectprotected Stringprotected Stringprotected Stringprotected Map<com.metaobjects.field.MetaField, com.metaobjects.object.MetaObject> protected Stringprotected Stringprotected Stringprotected Stringprotected com.metaobjects.object.MetaObjectprotected Stringprotected StringFields inherited from class com.metaobjects.generator.direct.FileDirectWriter
pw -
Constructor Summary
ConstructorsConstructorDescriptionBaseObjectCodeWriter(com.metaobjects.loader.MetaDataLoader loader, PrintWriter pw) BaseObjectCodeWriter(com.metaobjects.loader.MetaDataLoader loader, PrintWriter pw, GenerationContext context) -
Method Summary
Modifier and TypeMethodDescriptionaddArrayMethods(boolean addArrays) addKeyMethods(boolean addKeys) protected voidaddPackagePrefixToMap(com.metaobjects.object.MetaObject refmo) protected abstract StringgetClassName(com.metaobjects.object.MetaObject mo) Get the language-specific class/type name for a MetaObjectprotected abstract StringgetGetterMethodName(com.metaobjects.field.MetaField field) Get the language-specific getter method name for a fieldprotected abstract StringGet the language-specific attribute name for custom field namesprotected abstract StringgetLanguagePackage(com.metaobjects.object.MetaObject mo) Get the language-specific package name from a MetaObjectprotected abstract StringgetLanguageType(com.metaobjects.field.MetaField field) Get the language-specific type mapping for a MetaFieldprotected abstract StringgetParameterName(com.metaobjects.field.MetaField field) Get the language-specific parameter name for a fieldprotected abstract StringgetSetterMethodName(com.metaobjects.field.MetaField field) Get the language-specific setter method name for a fieldprotected voidinitImportList(Collection<com.metaobjects.object.MetaObject> refObjects) protected voidinitObjectReferenceMap(com.metaobjects.object.MetaObject mo) protected voidinitPackagePrefixMap(Collection<com.metaobjects.object.MetaObject> refObjects) protected voidinitVariables(com.metaobjects.object.MetaObject mo) protected booleanisNotBlank(String str) withContext(GenerationContext context) withNamePrefix(String namePrefix) withNameSuffix(String nameSuffix) withPkgPrefix(String pkgPrefix) withPkgSuffix(String pkgSuffix) protected abstract voidwriteComment(String comment) Write language-specific commentprotected abstract voidwriteGetter(String getterName, String typeName, com.metaobjects.field.MetaField field) Write language-specific getter methodprotected abstract voidWrite language-specific new linewriteObject(com.metaobjects.object.MetaObject mo) protected abstract voidWrite language-specific object footerprotected abstract voidwriteObjectHeader(List<String> docs, String pkg, String name, List<String> importList, String fullSuperName) Write language-specific object header (class/interface declaration)protected voidwriteObjectMethods(com.metaobjects.object.MetaObject mo) protected abstract voidwriteSetter(String setterName, String paramName, String typeName, com.metaobjects.field.MetaField field) Write language-specific setter methodMethods inherited from class com.metaobjects.generator.direct.FileDirectWriter
close, dec, getIndentor, getToStringOptions, inc, print, print, println, println, println, withIndentorMethods inherited from class com.metaobjects.generator.GeneratorIOWriter
getFilename, getFilters, getName, toString, withFilename, withFilters, withNameMethods inherited from class com.metaobjects.io.MetaDataWriter
getLoader, path
-
Field Details
-
debug
protected boolean debug -
context
-
filteredObjects
-
type
-
pkgPrefix
-
pkgSuffix
-
namePrefix
-
nameSuffix
-
addArrays
protected boolean addArrays -
addKeys
protected boolean addKeys -
metaObject
protected com.metaobjects.object.MetaObject metaObject -
pkg
-
name
-
superPkg
-
superName
-
fullSuperName
-
superObject
protected com.metaobjects.object.MetaObject superObject -
objectReferenceMap
-
importList
-
pkgPrefixMap
-
-
Constructor Details
-
BaseObjectCodeWriter
-
BaseObjectCodeWriter
public BaseObjectCodeWriter(com.metaobjects.loader.MetaDataLoader loader, PrintWriter pw, GenerationContext context)
-
-
Method Details
-
getLanguageType
Get the language-specific type mapping for a MetaField -
getGetterMethodName
Get the language-specific getter method name for a field -
getSetterMethodName
Get the language-specific setter method name for a field -
getParameterName
Get the language-specific parameter name for a field -
getClassName
Get the language-specific class/type name for a MetaObject -
writeGetter
protected abstract void writeGetter(String getterName, String typeName, com.metaobjects.field.MetaField field) Write language-specific getter method -
writeSetter
protected abstract void writeSetter(String setterName, String paramName, String typeName, com.metaobjects.field.MetaField field) Write language-specific setter method -
writeObjectHeader
protected abstract void writeObjectHeader(List<String> docs, String pkg, String name, List<String> importList, String fullSuperName) Write language-specific object header (class/interface declaration) -
writeComment
Write language-specific comment -
writeNewLine
protected abstract void writeNewLine()Write language-specific new line -
getLanguagePackage
Get the language-specific package name from a MetaObject -
getLanguageNameAttribute
Get the language-specific attribute name for custom field names -
forType
-
withPkgPrefix
-
withPkgSuffix
-
withNamePrefix
-
withNameSuffix
-
addArrayMethods
-
addKeyMethods
-
withContext
-
getContext
-
writeObject
- Throws:
GeneratorIOException
-
writeObjectMethods
protected void writeObjectMethods(com.metaobjects.object.MetaObject mo) -
initVariables
protected void initVariables(com.metaobjects.object.MetaObject mo) -
initObjectReferenceMap
protected void initObjectReferenceMap(com.metaobjects.object.MetaObject mo) -
initPackagePrefixMap
-
initImportList
-
addPackagePrefixToMap
protected void addPackagePrefixToMap(com.metaobjects.object.MetaObject refmo) -
isNotBlank
-