Class AltJavaGenerator
- java.lang.Object
-
- org.fusesource.hawtbuf.proto.compiler.AltJavaGenerator
-
public class AltJavaGenerator extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interfaceAltJavaGenerator.Closure
-
Field Summary
Fields Modifier and Type Field Description private booleanauto_clear_optional_fieldsprivate java.lang.StringbeanCNprivate java.lang.StringbufferCNprivate java.util.ArrayList<java.lang.String>errorsprivate java.lang.StringfactoryFeildprivate java.lang.StringgetterCN(package private) static char[]HEX_TABLEprivate intindentprivate java.lang.StringjavaPackageprivate booleanmultipleFilesprivate java.io.Fileoutprivate java.lang.StringouterClassNameprivate java.io.File[]pathprivate ProtoDescriptorprotoprivate java.io.PrintWriterw
-
Constructor Summary
Constructors Constructor Description AltJavaGenerator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringasJavaString(java.lang.String value)voidcompile(java.io.File file)private java.lang.StringconstantCase(java.lang.String name)private java.lang.StringconstantToUCamelCase(java.lang.String name)private booleanequals(java.lang.String o1, java.lang.String o2)private voidgenerateBeanEquals(MessageDescriptor m, java.lang.String className)private voidgenerateBufferEquals(MessageDescriptor m, java.lang.String className)private voidgenerateBufferGetters(FieldDescriptor field)private voidgenerateEnum(EnumDescriptor ed)private voidgenerateFieldAccessor(java.lang.String beanClassName, FieldDescriptor field)private voidgenerateFieldGetterSignatures(FieldDescriptor field)private voidgenerateFileHeader()private voidgenerateMessageBean(MessageDescriptor m)private voidgenerateMethodClear(MessageDescriptor m)private voidgenerateMethodCopyFromBean(MessageDescriptor m, java.lang.String className)private voidgenerateMethodFreeze(MessageDescriptor m, java.lang.String bufferClassName)private voidgenerateMethodMergeFromBean(MessageDescriptor m, java.lang.String getterClassName, java.lang.String beanClassName)private voidgenerateMethodMergeFromStream(MessageDescriptor m, java.lang.String className)private voidgenerateMethodParseFrom(MessageDescriptor m, java.lang.String bufferClassName, java.lang.String beanClassName)private voidgenerateMethodSerializedSize(MessageDescriptor m)private voidgenerateMethodToString(MessageDescriptor m)private voidgenerateMethodType(MessageDescriptor m, java.lang.String className)private voidgenerateMethodVisitor(MessageDescriptor m)If the java_visitor message option is set, then this method generates a visitor method.private voidgenerateMethodWrite(MessageDescriptor m)private voidgenerateParseDelegate(EnumDescriptor descriptor, java.lang.String methodName, java.lang.String inputType, java.lang.String exceptions)private voidgenerateProtoFile()private voidgenerateReadWriteExternal(MessageDescriptor m)private java.lang.StringgetOption(java.util.Map<java.lang.String,OptionDescriptor> options, java.lang.String optionName, java.lang.String defaultValue)java.io.FilegetOut()java.io.File[]getPath()private voidindent()private booleanisBuferOrString(java.lang.String type)private booleanisMultipleFilesEnabled(ProtoDescriptor proto)private booleanisPrimitive(java.lang.String type)private java.lang.StringjavaClassName(ProtoDescriptor proto)private java.lang.StringjavaCollectionType(FieldDescriptor field)private java.lang.StringjavaFactoryType(TypeDescriptor descriptor)private java.lang.StringjavaPackage(ProtoDescriptor proto)private java.lang.StringjavaType(FieldDescriptor field)private java.lang.StringjavaTypeDefault(FieldDescriptor field)private static java.lang.StringlCamel(java.lang.String name)private voidloadImports(ProtoDescriptor proto, java.io.File protoDir)static voidmain(java.lang.String[] args)private voidp()private voidp(java.lang.String line)private java.lang.Stringqualified(java.lang.String type, java.lang.String suffix)private static java.lang.StringremoveFileExtension(java.lang.String name)voidsetOut(java.io.File outputDirectory)voidsetPath(java.io.File[] path)private static java.lang.StringuCamel(java.lang.String name)private voidunindent()private voidwriteFile(java.lang.String className, AltJavaGenerator.Closure closure)
-
-
-
Field Detail
-
out
private java.io.File out
-
path
private java.io.File[] path
-
proto
private ProtoDescriptor proto
-
javaPackage
private java.lang.String javaPackage
-
outerClassName
private java.lang.String outerClassName
-
w
private java.io.PrintWriter w
-
indent
private int indent
-
errors
private java.util.ArrayList<java.lang.String> errors
-
multipleFiles
private boolean multipleFiles
-
auto_clear_optional_fields
private boolean auto_clear_optional_fields
-
factoryFeild
private java.lang.String factoryFeild
-
getterCN
private java.lang.String getterCN
-
beanCN
private java.lang.String beanCN
-
bufferCN
private java.lang.String bufferCN
-
HEX_TABLE
static final char[] HEX_TABLE
-
-
Method Detail
-
main
public static void main(java.lang.String[] args)
-
compile
public void compile(java.io.File file) throws CompilerException- Throws:
CompilerException
-
writeFile
private void writeFile(java.lang.String className, AltJavaGenerator.Closure closure) throws CompilerException- Throws:
CompilerException
-
loadImports
private void loadImports(ProtoDescriptor proto, java.io.File protoDir)
-
generateProtoFile
private void generateProtoFile() throws CompilerException- Throws:
CompilerException
-
generateFileHeader
private void generateFileHeader()
-
generateMessageBean
private void generateMessageBean(MessageDescriptor m)
-
generateMethodFreeze
private void generateMethodFreeze(MessageDescriptor m, java.lang.String bufferClassName)
-
isPrimitive
private boolean isPrimitive(java.lang.String type)
-
isBuferOrString
private boolean isBuferOrString(java.lang.String type)
-
generateMethodCopyFromBean
private void generateMethodCopyFromBean(MessageDescriptor m, java.lang.String className)
- Parameters:
m-className-
-
generateMethodVisitor
private void generateMethodVisitor(MessageDescriptor m)
If the java_visitor message option is set, then this method generates a visitor method. The option speifiies the class name of the visitor and optionally the return value and exceptions thrown by the visitor. Examples: option java_visitor = "org.apache.kahadb.store.Visitor"; generates: public void visit(org.apache.kahadb.store.Visitor visitor) { visitor.visit(this); } option java_visitor = "org.apache.kahadb.store.Visitor:int:java.io.IOException"; generates: public int visit(org.apache.kahadb.store.Visitor visitor) throws java.io.IOException { return visitor.visit(this); }- Parameters:
m-
-
generateMethodType
private void generateMethodType(MessageDescriptor m, java.lang.String className)
-
generateMethodParseFrom
private void generateMethodParseFrom(MessageDescriptor m, java.lang.String bufferClassName, java.lang.String beanClassName)
-
generateBeanEquals
private void generateBeanEquals(MessageDescriptor m, java.lang.String className)
-
generateBufferEquals
private void generateBufferEquals(MessageDescriptor m, java.lang.String className)
-
generateMethodSerializedSize
private void generateMethodSerializedSize(MessageDescriptor m)
- Parameters:
m-
-
generateMethodWrite
private void generateMethodWrite(MessageDescriptor m)
- Parameters:
m-
-
generateMethodMergeFromStream
private void generateMethodMergeFromStream(MessageDescriptor m, java.lang.String className)
- Parameters:
m-className-
-
generateMethodMergeFromBean
private void generateMethodMergeFromBean(MessageDescriptor m, java.lang.String getterClassName, java.lang.String beanClassName)
- Parameters:
m-getterClassName-
-
generateMethodClear
private void generateMethodClear(MessageDescriptor m)
- Parameters:
m-
-
generateReadWriteExternal
private void generateReadWriteExternal(MessageDescriptor m)
-
generateMethodToString
private void generateMethodToString(MessageDescriptor m)
-
generateBufferGetters
private void generateBufferGetters(FieldDescriptor field)
- Parameters:
field-
-
generateFieldGetterSignatures
private void generateFieldGetterSignatures(FieldDescriptor field)
- Parameters:
field-
-
generateFieldAccessor
private void generateFieldAccessor(java.lang.String beanClassName, FieldDescriptor field)- Parameters:
field-
-
javaTypeDefault
private java.lang.String javaTypeDefault(FieldDescriptor field)
-
asJavaString
private java.lang.String asJavaString(java.lang.String value)
-
generateEnum
private void generateEnum(EnumDescriptor ed)
-
generateParseDelegate
private void generateParseDelegate(EnumDescriptor descriptor, java.lang.String methodName, java.lang.String inputType, java.lang.String exceptions)
-
javaCollectionType
private java.lang.String javaCollectionType(FieldDescriptor field)
-
javaType
private java.lang.String javaType(FieldDescriptor field)
-
javaFactoryType
private java.lang.String javaFactoryType(TypeDescriptor descriptor)
-
qualified
private java.lang.String qualified(java.lang.String type, java.lang.String suffix)
-
equals
private boolean equals(java.lang.String o1, java.lang.String o2)
-
javaClassName
private java.lang.String javaClassName(ProtoDescriptor proto)
-
isMultipleFilesEnabled
private boolean isMultipleFilesEnabled(ProtoDescriptor proto)
-
javaPackage
private java.lang.String javaPackage(ProtoDescriptor proto)
-
indent
private void indent()
-
unindent
private void unindent()
-
p
private void p(java.lang.String line)
-
p
private void p()
-
getOption
private java.lang.String getOption(java.util.Map<java.lang.String,OptionDescriptor> options, java.lang.String optionName, java.lang.String defaultValue)
-
removeFileExtension
private static java.lang.String removeFileExtension(java.lang.String name)
-
uCamel
private static java.lang.String uCamel(java.lang.String name)
-
lCamel
private static java.lang.String lCamel(java.lang.String name)
-
constantToUCamelCase
private java.lang.String constantToUCamelCase(java.lang.String name)
-
constantCase
private java.lang.String constantCase(java.lang.String name)
-
getOut
public java.io.File getOut()
-
setOut
public void setOut(java.io.File outputDirectory)
-
getPath
public java.io.File[] getPath()
-
setPath
public void setPath(java.io.File[] path)
-
-