public static void main(String[] args) { AltJavaGenerator generator = new AltJavaGenerator(); args = CommandLineSupport.setOptions(generator, args); if (args.length == 0) { System.out.println("No proto files specified."); } for (int i = 0; i < args.length; i++) { try { System.out.println("Compiling: "+args[i]); generator.compile(new File(args[i])); } catch (CompilerException e) { System.out.println("Protocol Buffer Compiler failed with the following error(s):"); for (String error : e.getErrors() ) { System.out.println(""); System.out.println(error); } System.out.println(""); System.out.println("Compile failed. For more details see error messages listed above."); return; } } }
private void generateMethodType(MessageDescriptor m, String className) { String typeEnum = getOption(m.getOptions(), "java_type_method", null); if( typeEnum!=null ) { String constant = constantCase(className); EnumDescriptor enumDescriptor = (EnumDescriptor)typeDescriptor; if( enumDescriptor.getFields().get(constant) == null ) { String type = javaType(typeDescriptor); p("public "+type+" type() {"); indent(); p("return "+type+"."+constant+";"); unindent(); p("}"); p();
private void generateParseDelegate(EnumDescriptor descriptor, String methodName, String inputType, String exceptions) { p("public org.apache.activemq.protobuf.MessageBuffer " + methodName + "(" + inputType + " data) throws " + exceptions + " {"); indent(); p("switch (this) {"); indent(); for (EnumFieldDescriptor field : descriptor.getFields().values()) { p("case "+field.getName()+":"); String type = constantToUCamelCase(field.getName()); p(" return "+javaRelatedType(type, "Buffer")+"."+methodName+"(data);"); } p("default:"); p(" return null;"); unindent(); p("}"); unindent(); p("}"); p(); }
private String javaType(TypeDescriptor descriptor) { ProtoDescriptor p = descriptor.getProtoDescriptor(); if( p != proto ) { // Try to keep it short.. String othePackage = javaPackage(p); if( equals(othePackage,javaPackage(proto) ) ) { return javaClassName(p)+"."+descriptor.getQName(); } // Use the fully qualified class name. return othePackage+"."+javaClassName(p)+"."+descriptor.getQName(); } return descriptor.getQName(); }
for (EnumDescriptor value : proto.getEnums().values()) { final EnumDescriptor o = value; String className = uCamel(o.getName()); writeFile(className, new Closure(){ public void execute() throws CompilerException { generateFileHeader(); String className = uCamel(o.getName()); writeFile(className, new Closure(){ public void execute() throws CompilerException { generateFileHeader(); generateFileHeader(); p("public class " + outerClassName + " {"); indent(); generateEnum(enumType); generateMessageBean(m); unindent(); p("}");
String className = uCamel(m.getName()); String beanClassName = className+"Bean"; String bufferClassName = className+"Buffer"; p(); String name = uCamel(enumFeild.getParent().getName()); name = name+"."+name+"Creatable"; extendsClause += ", "+name; p(staticOption+"public interface " + className + extendsClause +" {"); p(); indent(); generateEnum(enumType); generateMessageBean(subMessage); generateMessageBean(field.getGroup()); generateFieldGetterSignatures(field); p("public "+beanClassName+" copy();"); p("public "+bufferClassName+" freeze();"); p("public java.lang.StringBuilder toString(java.lang.StringBuilder sb, String prefix);"); p(); p("static public final class "+beanClassName+" implements "+className+" {"); p(); indent();
generator.compile(file); } else if( "alt".equals(type) ) { AltJavaGenerator generator = new AltJavaGenerator(); generator.setOut(outputDirectory); generator.compile(file);
if( defaultOption!=null ) { if( field.isStringType() ) { return asJavaString(defaultOption.getValue()); } else if( field.getType() == FieldDescriptor.BYTES_TYPE ) { return "new "+javaType(field)+"("+asJavaString(defaultOption.getValue())+")"; } else if( field.isInteger32Type() ) { int v; return ""+v; } else if( field.getTypeDescriptor()!=null && field.getTypeDescriptor().isEnum() ) { return javaType(field)+"."+defaultOption.getValue();
String className = uCamel(m.getName()); String beanClassName = className+"Bean"; String bufferClassName = className+"Buffer"; p(); String name = uCamel(enumFeild.getParent().getName()); name = name+"."+name+"Creatable"; extendsClause += ", "+name; p(staticOption+"public interface " + className + extendsClause +" {"); p(); indent(); generateEnum(enumType); generateMessageBean(subMessage); generateMessageBean(field.getGroup()); generateFieldGetterSignatures(field); p("public "+beanClassName+" copy();"); p("public "+bufferClassName+" freeze();"); p("public java.lang.StringBuilder toString(java.lang.StringBuilder sb, String prefix);"); p(); p("static public final class "+beanClassName+" implements "+className+" {"); p(); indent();
for (EnumDescriptor value : proto.getEnums().values()) { final EnumDescriptor o = value; String className = uCamel(o.getName()); writeFile(className, new Closure(){ public void execute() throws CompilerException { generateFileHeader(); String className = uCamel(o.getName()); writeFile(className, new Closure(){ public void execute() throws CompilerException { generateFileHeader(); generateFileHeader(); p("public class " + outerClassName + " {"); indent(); generateEnum(enumType); generateMessageBean(m); unindent(); p("}");
private String javaType(TypeDescriptor descriptor) { ProtoDescriptor p = descriptor.getProtoDescriptor(); if( p != proto ) { // Try to keep it short.. String othePackage = javaPackage(p); if( equals(othePackage,javaPackage(proto) ) ) { return javaClassName(p)+"."+descriptor.getQName(); } // Use the fully qualified class name. return othePackage+"."+javaClassName(p)+"."+descriptor.getQName(); } return descriptor.getQName(); }
generator.compile(file); } else if( "alt".equals(type) ) { AltJavaGenerator generator = new AltJavaGenerator(); generator.setOut(outputDirectory); generator.compile(file);
if( defaultOption!=null ) { if( field.isStringType() ) { return asJavaString(defaultOption.getValue()); } else if( field.getType() == FieldDescriptor.BYTES_TYPE ) { return "new "+javaType(field)+"("+asJavaString(defaultOption.getValue())+")"; } else if( field.isInteger32Type() ) { int v; return ""+v; } else if( field.getTypeDescriptor()!=null && field.getTypeDescriptor().isEnum() ) { return javaType(field)+"."+defaultOption.getValue();
String className = uCamel(m.getName()); String beanClassName = className+"Bean"; String bufferClassName = className+"Buffer"; p(); String name = uCamel(enumFeild.getParent().getName()); name = name+"."+name+"Creatable"; extendsClause += ", "+name; p(staticOption+"public interface " + className + extendsClause +" {"); p(); indent(); generateEnum(enumType); generateMessageBean(subMessage); generateMessageBean(field.getGroup()); generateFieldGetterSignatures(field); p("public "+beanClassName+" copy();"); p("public "+bufferClassName+" freeze();"); p("public java.lang.StringBuilder toString(java.lang.StringBuilder sb, String prefix);"); p(); p("static public final class "+beanClassName+" implements "+className+" {"); p(); indent();
for (EnumDescriptor value : proto.getEnums().values()) { final EnumDescriptor o = value; String className = uCamel(o.getName()); writeFile(className, new Closure(){ public void execute() throws CompilerException { generateFileHeader(); String className = uCamel(o.getName()); writeFile(className, new Closure(){ public void execute() throws CompilerException { generateFileHeader(); generateFileHeader(); p("public class " + outerClassName + " {"); indent(); generateEnum(enumType); generateMessageBean(m); unindent(); p("}");
private void generateMethodType(MessageDescriptor m, String className) { String typeEnum = getOption(m.getOptions(), "java_type_method", null); if( typeEnum!=null ) { String constant = constantCase(className); EnumDescriptor enumDescriptor = (EnumDescriptor)typeDescriptor; if( enumDescriptor.getFields().get(constant) == null ) { String type = javaType(typeDescriptor); p("public "+type+" type() {"); indent(); p("return "+type+"."+constant+";"); unindent(); p("}"); p();
private void generateParseDelegate(EnumDescriptor descriptor, String methodName, String inputType, String exceptions) { p("public org.apache.activemq.protobuf.MessageBuffer " + methodName + "(" + inputType + " data) throws " + exceptions + " {"); indent(); p("switch (this) {"); indent(); for (EnumFieldDescriptor field : descriptor.getFields().values()) { p("case "+field.getName()+":"); String type = constantToUCamelCase(field.getName()); p(" return "+javaRelatedType(type, "Buffer")+"."+methodName+"(data);"); } p("default:"); p(" return null;"); unindent(); p("}"); unindent(); p("}"); p(); }
private String javaType(TypeDescriptor descriptor) { ProtoDescriptor p = descriptor.getProtoDescriptor(); if( p != proto ) { // Try to keep it short.. String othePackage = javaPackage(p); if( equals(othePackage,javaPackage(proto) ) ) { return javaClassName(p)+"."+descriptor.getQName(); } // Use the fully qualified class name. return othePackage+"."+javaClassName(p)+"."+descriptor.getQName(); } return descriptor.getQName(); }
generator.compile(file); } else if( "alt".equals(type) ) { AltJavaGenerator generator = new AltJavaGenerator(); generator.setOut(outputDirectory); generator.compile(file);
public static void main(String[] args) { AltJavaGenerator generator = new AltJavaGenerator(); args = CommandLineSupport.setOptions(generator, args); if (args.length == 0) { System.out.println("No proto files specified."); } for (int i = 0; i < args.length; i++) { try { System.out.println("Compiling: "+args[i]); generator.compile(new File(args[i])); } catch (CompilerException e) { System.out.println("Protocol Buffer Compiler failed with the following error(s):"); for (String error : e.getErrors() ) { System.out.println(""); System.out.println(error); } System.out.println(""); System.out.println("Compile failed. For more details see error messages listed above."); return; } } }