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 interface
JavaGenerator.Closure
-
Field Summary
Fields Modifier and Type Field Description private boolean
auto_clear_optional_fields
private boolean
deferredDecode
private java.util.ArrayList<java.lang.String>
errors
(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 JavaGenerator()
-
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
generateEnum(EnumDescriptor ed)
private void
generateFieldAccessor(FieldDescriptor field)
private void
generateFileHeader()
private void
generateMessageBean(MessageDescriptor m)
private void
generateMethodAssertInitialized(MessageDescriptor m, java.lang.String className)
private void
generateMethodClear(MessageDescriptor m)
private void
generateMethodEquals(MessageDescriptor m, java.lang.String className)
private void
generateMethodMergeFromBean(MessageDescriptor m, java.lang.String className)
private void
generateMethodMergeFromStream(MessageDescriptor m, java.lang.String className)
private void
generateMethodParseFrom(MessageDescriptor m, java.lang.String className)
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
generateMethodWriteTo(MessageDescriptor m)
private void
generateProtoFile()
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
isInBaseClass(MessageDescriptor m, FieldDescriptor field)
private boolean
isMultipleFilesEnabled(ProtoDescriptor proto)
private java.lang.String
javaClassName(ProtoDescriptor proto)
private java.lang.String
javaCollectionType(FieldDescriptor field)
private java.lang.String
javaPackage(ProtoDescriptor proto)
private java.lang.String
javaType(FieldDescriptor field)
private java.lang.String
javaType(TypeDescriptor descriptor)
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 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, 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)
-
-