Class JavaGenerator
- java.lang.Object
-
- org.fusesource.hawtbuf.proto.compiler.JavaGenerator
-
public class JavaGenerator extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interfaceJavaGenerator.Closure
-
Field Summary
Fields Modifier and Type Field Description private booleanauto_clear_optional_fieldsprivate booleandeferredDecodeprivate java.util.ArrayList<java.lang.String>errors(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 JavaGenerator()
-
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 voidgenerateEnum(EnumDescriptor ed)private voidgenerateFieldAccessor(FieldDescriptor field)private voidgenerateFileHeader()private voidgenerateMessageBean(MessageDescriptor m)private voidgenerateMethodAssertInitialized(MessageDescriptor m, java.lang.String className)private voidgenerateMethodClear(MessageDescriptor m)private voidgenerateMethodEquals(MessageDescriptor m, java.lang.String className)private voidgenerateMethodMergeFromBean(MessageDescriptor m, java.lang.String className)private voidgenerateMethodMergeFromStream(MessageDescriptor m, java.lang.String className)private voidgenerateMethodParseFrom(MessageDescriptor m, java.lang.String className)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 voidgenerateMethodWriteTo(MessageDescriptor m)private voidgenerateProtoFile()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 booleanisInBaseClass(MessageDescriptor m, FieldDescriptor field)private booleanisMultipleFilesEnabled(ProtoDescriptor proto)private java.lang.StringjavaClassName(ProtoDescriptor proto)private java.lang.StringjavaCollectionType(FieldDescriptor field)private java.lang.StringjavaPackage(ProtoDescriptor proto)private java.lang.StringjavaType(FieldDescriptor field)private java.lang.StringjavaType(TypeDescriptor descriptor)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 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, JavaGenerator.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
-
deferredDecode
private boolean deferredDecode
-
auto_clear_optional_fields
private boolean auto_clear_optional_fields
-
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, JavaGenerator.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)
-
isInBaseClass
private boolean isInBaseClass(MessageDescriptor m, FieldDescriptor field)
-
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 className)
-
generateMethodEquals
private void generateMethodEquals(MessageDescriptor m, java.lang.String className)
-
generateMethodSerializedSize
private void generateMethodSerializedSize(MessageDescriptor m)
- Parameters:
m-
-
generateMethodWriteTo
private void generateMethodWriteTo(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 className)
- Parameters:
m-className-
-
generateMethodClear
private void generateMethodClear(MessageDescriptor m)
- Parameters:
m-
-
generateMethodAssertInitialized
private void generateMethodAssertInitialized(MessageDescriptor m, java.lang.String className)
-
generateMethodToString
private void generateMethodToString(MessageDescriptor m)
-
generateFieldAccessor
private void generateFieldAccessor(FieldDescriptor field)
- Parameters:
field-className-
-
javaTypeDefault
private java.lang.String javaTypeDefault(FieldDescriptor field)
-
asJavaString
private java.lang.String asJavaString(java.lang.String value)
-
generateEnum
private void generateEnum(EnumDescriptor ed)
-
javaCollectionType
private java.lang.String javaCollectionType(FieldDescriptor field)
-
javaType
private java.lang.String javaType(FieldDescriptor field)
-
javaType
private java.lang.String javaType(TypeDescriptor descriptor)
-
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)
-
-