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 interface
AltJavaGenerator.Closure
-
Field Summary
Fields Modifier and Type Field Description private boolean
auto_clear_optional_fields
private java.lang.String
beanCN
private java.lang.String
bufferCN
private java.util.ArrayList<java.lang.String>
errors
private java.lang.String
factoryFeild
private java.lang.String
getterCN
(package private) static char[]
HEX_TABLE
private int
indent
private java.lang.String
javaPackage
private boolean
multipleFiles
private java.io.File
out
private java.lang.String
outerClassName
private java.io.File[]
path
private ProtoDescriptor
proto
private java.io.PrintWriter
w
-
Constructor Summary
Constructors Constructor Description AltJavaGenerator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
asJavaString(java.lang.String value)
void
compile(java.io.File file)
private java.lang.String
constantCase(java.lang.String name)
private java.lang.String
constantToUCamelCase(java.lang.String name)
private boolean
equals(java.lang.String o1, java.lang.String o2)
private void
generateBeanEquals(MessageDescriptor m, java.lang.String className)
private void
generateBufferEquals(MessageDescriptor m, java.lang.String className)
private void
generateBufferGetters(FieldDescriptor field)
private void
generateEnum(EnumDescriptor ed)
private void
generateFieldAccessor(java.lang.String beanClassName, FieldDescriptor field)
private void
generateFieldGetterSignatures(FieldDescriptor field)
private void
generateFileHeader()
private void
generateMessageBean(MessageDescriptor m)
private void
generateMethodClear(MessageDescriptor m)
private void
generateMethodCopyFromBean(MessageDescriptor m, java.lang.String className)
private void
generateMethodFreeze(MessageDescriptor m, java.lang.String bufferClassName)
private void
generateMethodMergeFromBean(MessageDescriptor m, java.lang.String getterClassName, java.lang.String beanClassName)
private void
generateMethodMergeFromStream(MessageDescriptor m, java.lang.String className)
private void
generateMethodParseFrom(MessageDescriptor m, java.lang.String bufferClassName, java.lang.String beanClassName)
private void
generateMethodSerializedSize(MessageDescriptor m)
private void
generateMethodToString(MessageDescriptor m)
private void
generateMethodType(MessageDescriptor m, java.lang.String className)
private void
generateMethodVisitor(MessageDescriptor m)
If the java_visitor message option is set, then this method generates a visitor method.private void
generateMethodWrite(MessageDescriptor m)
private void
generateParseDelegate(EnumDescriptor descriptor, java.lang.String methodName, java.lang.String inputType, java.lang.String exceptions)
private void
generateProtoFile()
private void
generateReadWriteExternal(MessageDescriptor m)
private java.lang.String
getOption(java.util.Map<java.lang.String,OptionDescriptor> options, java.lang.String optionName, java.lang.String defaultValue)
java.io.File
getOut()
java.io.File[]
getPath()
private void
indent()
private boolean
isBuferOrString(java.lang.String type)
private boolean
isMultipleFilesEnabled(ProtoDescriptor proto)
private boolean
isPrimitive(java.lang.String type)
private java.lang.String
javaClassName(ProtoDescriptor proto)
private java.lang.String
javaCollectionType(FieldDescriptor field)
private java.lang.String
javaFactoryType(TypeDescriptor descriptor)
private java.lang.String
javaPackage(ProtoDescriptor proto)
private java.lang.String
javaType(FieldDescriptor field)
private java.lang.String
javaTypeDefault(FieldDescriptor field)
private static java.lang.String
lCamel(java.lang.String name)
private void
loadImports(ProtoDescriptor proto, java.io.File protoDir)
static void
main(java.lang.String[] args)
private void
p()
private void
p(java.lang.String line)
private java.lang.String
qualified(java.lang.String type, java.lang.String suffix)
private static java.lang.String
removeFileExtension(java.lang.String name)
void
setOut(java.io.File outputDirectory)
void
setPath(java.io.File[] path)
private static java.lang.String
uCamel(java.lang.String name)
private void
unindent()
private void
writeFile(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)
-
-