String uname = uCamel(field.getName()); String getter="get"+uname+"()"; String type = javaType(field); if( field.getRule() == FieldDescriptor.REPEATED_RULE ) { p("for ("+type+" i : get"+uname+"List()) {"); indent(); if( field.getType()==FieldDescriptor.STRING_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeStringSize("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.BYTES_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeBytesSize("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.BOOL_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeBoolSize("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.DOUBLE_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeDoubleSize("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.FLOAT_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeFloatSize("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.INT32_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeInt32Size("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.INT64_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeInt64Size("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.SINT32_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeSInt32Size("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.SINT64_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeSInt64Size("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.UINT32_TYPE ) { p("size += org.apache.activemq.protobuf.CodedOutputStream.computeUInt32Size("+field.getTag()+", "+getter+");"); } else if( field.getType()==FieldDescriptor.UINT64_TYPE ) {
private String javaType(FieldDescriptor field) { if( field.isInteger32Type() ) { return "int"; if( field.isInteger64Type() ) { return "long"; if( field.getType() == FieldDescriptor.DOUBLE_TYPE ) { return "double"; if( field.getType() == FieldDescriptor.FLOAT_TYPE ) { return "float"; if( field.getType() == FieldDescriptor.STRING_TYPE ) { if( field.getType() == FieldDescriptor.BYTES_TYPE ) { String override = getOption(field.getOptions(), "java_override_type", null); if( "AsciiBuffer".equals(override) ) { return "org.apache.activemq.protobuf.AsciiBuffer"; if( field.getType() == FieldDescriptor.BOOL_TYPE ) { return "boolean"; TypeDescriptor descriptor = field.getTypeDescriptor(); return javaType(descriptor);
private String javaCollectionType(FieldDescriptor field) { if( field.isInteger32Type() ) { return "java.lang.Integer"; } if( field.isInteger64Type() ) { return "java.lang.Long"; } if( field.getType() == FieldDescriptor.DOUBLE_TYPE ) { return "java.lang.Double"; } if( field.getType() == FieldDescriptor.FLOAT_TYPE ) { return "java.lang.Float"; } if( field.getType() == FieldDescriptor.STRING_TYPE ) { return "java.lang.String"; } if( field.getType() == FieldDescriptor.BYTES_TYPE ) { return "org.apache.activemq.protobuf.Buffer"; } if( field.getType() == FieldDescriptor.BOOL_TYPE ) { return "java.lang.Boolean"; } TypeDescriptor descriptor = field.getTypeDescriptor(); return javaType(descriptor); }
/** * @param field * @param className */ private void generateFieldGetterSignatures(FieldDescriptor field) { String uname = uCamel(field.getName()); String type = field.getRule()==FieldDescriptor.REPEATED_RULE ? javaCollectionType(field):javaType(field); boolean repeated = field.getRule()==FieldDescriptor.REPEATED_RULE; // Create the fields.. p("// " + field.getRule() + " " + field.getType() + " " + field.getName() + " = " + field.getTag() + ";"); if( repeated ) { // Create the field accessors p("public boolean has" + uname + "();"); p("public java.util.List<" + type + "> get" + uname + "List();"); p("public int get" + uname + "Count();"); p("public " + type + " get" + uname + "(int index);"); } else { // Create the field accessors p("public boolean has" + uname + "();"); p("public " + type + " get" + uname + "();"); } }
private String javaTypeDefault(FieldDescriptor field) { OptionDescriptor defaultOption = field.getOptions().get("default"); if( defaultOption!=null ) { if( field.isStringType() ) { return asJavaString(defaultOption.getValue()); } else if( field.getType() == FieldDescriptor.BYTES_TYPE ) { return "new org.apache.activemq.protobuf.Buffer("+asJavaString(defaultOption.getValue())+")"; } else if( field.isInteger32Type() ) { int v; if( field.getType() == FieldDescriptor.UINT32_TYPE ) { v = TextFormat.parseUInt32(defaultOption.getValue()); } else { } else if( field.isInteger64Type() ) { long v; if( field.getType() == FieldDescriptor.UINT64_TYPE ) { v = TextFormat.parseUInt64(defaultOption.getValue()); } else { } else if( field.getType() == FieldDescriptor.DOUBLE_TYPE ) { double v = Double.valueOf(defaultOption.getValue()); return ""+v+"d"; } else if( field.getType() == FieldDescriptor.FLOAT_TYPE ) { float v = Float.valueOf(defaultOption.getValue()); return ""+v+"f"; } else if( field.getType() == FieldDescriptor.BOOL_TYPE ) { boolean v = Boolean.valueOf(defaultOption.getValue()); return ""+v; } else if( field.getTypeDescriptor()!=null && field.getTypeDescriptor().isEnum() ) { return javaType(field)+"."+defaultOption.getValue();
String lname = lCamel(field.getName()); String uname = uCamel(field.getName()); String type = field.getRule()==FieldDescriptor.REPEATED_RULE ? javaCollectionType(field):javaType(field); String typeDefault = javaTypeDefault(field); boolean primitive = field.getTypeDescriptor()==null || field.getTypeDescriptor().isEnum(); boolean repeated = field.getRule()==FieldDescriptor.REPEATED_RULE; p("// " + field.getRule() + " " + field.getType() + " " + field.getName() + " = " + field.getTag() + ";"); p("load();"); if( field.getTypeDescriptor()!=null && !field.getTypeDescriptor().isEnum()) { p("if( this.f_" + lname + " == null ) {"); indent(); p("loadAndClear();"); if (primitive) { if( auto_clear_optional_fields && field.isOptional() ) { if( field.isStringType() && !"null".equals(typeDefault)) { p("this.b_" + lname + " = ("+lname+" != "+typeDefault+");"); } else {
indent(); for (FieldDescriptor field : m.getFields().values()) { String uname = uCamel(field.getName()); String getterMethod="get"+uname+"()"; String hasMethod = "has"+uname+"()"; if( field.getRule() == FieldDescriptor.REPEATED_RULE ) { getterMethod = "get"+uname+"List()"; if( field.getRule() != FieldDescriptor.REPEATED_RULE && (field.isNumberType() || field.getType()==FieldDescriptor.BOOL_TYPE) ) { p("if ("+hasMethod+" && ( "+getterMethod+"!=obj."+getterMethod+" ))"); } else { String uname = uCamel(field.getName()); String getterMethod="get"+uname+"()"; String hasMethod = "has"+uname+"()"; if( field.getRule() == FieldDescriptor.REPEATED_RULE ) { getterMethod = "get"+uname+"List()"; if( field.getRule() == FieldDescriptor.REPEATED_RULE ) { p("rc ^= ( "+uname.hashCode()+"^"+getterMethod+".hashCode() );"); } else if( field.isInteger32Type() ) { p("rc ^= ( "+uname.hashCode()+"^"+getterMethod+" );"); } else if( field.isInteger64Type() ) { p("rc ^= ( "+uname.hashCode()+"^(new Long("+getterMethod+")).hashCode() );"); } else if( field.getType()==FieldDescriptor.DOUBLE_TYPE ) { p("rc ^= ( "+uname.hashCode()+"^(new Double("+getterMethod+")).hashCode() );"); } else if( field.getType()==FieldDescriptor.FLOAT_TYPE ) {
OptionDescriptor optionD; FieldDescriptor fieldD; FieldDescriptor rc = new FieldDescriptor(parent); MessageDescriptor group = new MessageDescriptor(parent.getProtoDescriptor(), parent); rule = Rule(); fields.put(fieldD.getName(), fieldD); group.setName(name); group.setFields(fields); rc.setGroup(group); break; default: rc.setName(name); rc.setType(type); rc.setRule(rule); rc.setTag(tag); rc.setOptions(opts); {if (true) return rc;} throw new Error("Missing return statement in function");
String lname = lCamel(field.getName()); String type = javaType(field); boolean repeated = field.getRule()==FieldDescriptor.REPEATED_RULE; p("for(int i=0; i<size; i++) {"); indent(); if( field.isInteger32Type() ) { p("f_"+lname+".add(in.readInt());"); } else if( field.isInteger64Type() ) { p("f_"+lname+".add(in.readLong());"); } else if( field.getType() == FieldDescriptor.DOUBLE_TYPE ) { p("f_"+lname+".add(in.readDouble());"); } else if( field.getType() == FieldDescriptor.FLOAT_TYPE ) { p("f_"+lname+".add(in.readFloat());"); } else if( field.getType() == FieldDescriptor.BOOL_TYPE ) { p("f_"+lname+".add(in.readBoolean());"); } else if( field.getType() == FieldDescriptor.STRING_TYPE ) { p("f_"+lname+".add(in.readUTF());"); } else if( field.getType() == FieldDescriptor.BYTES_TYPE ) { p("byte b[] = new byte[in.readInt()];"); p("in.readFully(b);"); p("f_"+lname+".add(new "+type+"(b));"); } else if (field.getTypeDescriptor().isEnum() ) { p("f_"+lname+".add(" + type + ".valueOf(in.readShort()));"); } else { if( field.isInteger32Type() ) { p("f_"+lname+" = in.readInt();"); p("b_"+lname+" = true;");
indent(); for (FieldDescriptor field : m.getFields().values()) { String uname = uCamel(field.getName()); p("if (other.has"+uname+"()) {"); indent(); if( field.isScalarType() || field.getTypeDescriptor().isEnum() ) { if( field.isRepeated() ) { p("get"+uname+"List().addAll(other.get"+uname+"List());"); } else { if( field.isRepeated() ) { p("for("+type+" element: other.get"+uname+"List() ) {"); indent();
indent(); for (FieldDescriptor field : m.getFields().values()) { String uname = uCamel(field.getName()); p("if( has" + uname + "() ) {"); indent(); if( field.isRepeated() ) { String type = javaCollectionType(field); p("java.util.List<"+type+"> l = get" + uname + "List();"); p("for( int i=0; i < l.size(); i++ ) {"); indent(); if( field.getTypeDescriptor()!=null && !field.getTypeDescriptor().isEnum()) { p("sb.append(prefix+\""+field.getName()+"[\"+i+\"] {\\n\");"); p("l.get(i).toString(sb, prefix+\" \");"); p("sb.append(prefix+\"}\\n\");"); } else { p("sb.append(prefix+\""+field.getName()+"[\"+i+\"]: \");"); p("sb.append(l.get(i));"); p("sb.append(\"\\n\");"); p("}"); } else { if( field.getTypeDescriptor()!=null && !field.getTypeDescriptor().isEnum()) { p("sb.append(prefix+\""+field.getName()+" {\\n\");"); p("get" + uname + "().toString(sb, prefix+\" \");"); p("sb.append(prefix+\"}\\n\");"); } else { p("sb.append(prefix+\""+field.getName()+": \");"); p("sb.append(get" + uname + "());"); p("sb.append(\"\\n\");");
p("this.bean = this;"); for (FieldDescriptor field : m.getFields().values()) { String lname = lCamel(field.getName()); String type = field.getRule()==FieldDescriptor.REPEATED_RULE ? javaCollectionType(field):javaType(field); boolean primitive = field.getTypeDescriptor()==null || field.getTypeDescriptor().isEnum(); if( field.isRepeated() ) { if( primitive ) { p("this.f_" + lname + " = other.f_" + lname + ";");
String uname = uCamel(field.getName()); if( field.isRequired() ) { p("if( !has" + uname + "() ) {"); indent(); p("missingFields.add(\""+field.getName()+"\");"); unindent(); p("}"); if( field.getTypeDescriptor()!=null && !field.getTypeDescriptor().isEnum()) { String uname = uCamel(field.getName()); p("if( has" + uname + "() ) {"); indent(); if( !field.isRepeated() ) { p("try {"); indent(); p("} catch (org.apache.activemq.protobuf.UninitializedMessageException e){"); indent(); p("missingFields.addAll(prefix(e.getMissingFields(),\""+field.getName()+".\"));"); unindent(); p("}"); p("} catch (org.apache.activemq.protobuf.UninitializedMessageException e){"); indent(); p("missingFields.addAll(prefix(e.getMissingFields(),\""+field.getName()+"[\"+i+\"]\"));"); unindent(); p("}");
private boolean isInBaseClass(MessageDescriptor m, FieldDescriptor field) { if( m.getBaseType() ==null ) return false; return m.getBaseType().getFields().containsKey(field.getName()); }
private String javaTypeDefault(FieldDescriptor field) { OptionDescriptor defaultOption = field.getOptions().get("default"); if( defaultOption!=null ) { if( field.isStringType() ) { return asJavaString(defaultOption.getValue()); } else if( field.getType() == FieldDescriptor.BYTES_TYPE ) { return "new org.apache.activemq.protobuf.Buffer("+asJavaString(defaultOption.getValue())+")"; } else if( field.isInteger32Type() ) { int v; if( field.getType() == FieldDescriptor.UINT32_TYPE ) { v = TextFormat.parseUInt32(defaultOption.getValue()); } else { } else if( field.isInteger64Type() ) { long v; if( field.getType() == FieldDescriptor.UINT64_TYPE ) { v = TextFormat.parseUInt64(defaultOption.getValue()); } else { } else if( field.getType() == FieldDescriptor.DOUBLE_TYPE ) { double v = Double.valueOf(defaultOption.getValue()); return ""+v+"d"; } else if( field.getType() == FieldDescriptor.FLOAT_TYPE ) { float v = Float.valueOf(defaultOption.getValue()); return ""+v+"f"; } else if( field.getType() == FieldDescriptor.BOOL_TYPE ) { boolean v = Boolean.valueOf(defaultOption.getValue()); return ""+v; } else if( field.getTypeDescriptor()!=null && field.getTypeDescriptor().isEnum() ) { return javaType(field)+"."+defaultOption.getValue();
String lname = lCamel(field.getName()); String uname = uCamel(field.getName()); String type = field.getRule()==FieldDescriptor.REPEATED_RULE ? javaCollectionType(field):javaType(field); String typeDefault = javaTypeDefault(field); boolean primitive = field.getTypeDescriptor()==null || field.getTypeDescriptor().isEnum(); boolean repeated = field.getRule()==FieldDescriptor.REPEATED_RULE; p("// " + field.getRule() + " " + field.getType() + " " + field.getName() + " = " + field.getTag() + ";"); p("load();"); if( field.getTypeDescriptor()!=null && !field.getTypeDescriptor().isEnum()) { p("if( this.f_" + lname + " == null ) {"); indent(); p("loadAndClear();"); if (primitive) { if( auto_clear_optional_fields && field.isOptional() ) { if( field.isStringType() && !"null".equals(typeDefault)) { p("this.b_" + lname + " = ("+lname+" != "+typeDefault+");"); } else {
indent(); for (FieldDescriptor field : m.getFields().values()) { String uname = uCamel(field.getName()); String getterMethod="get"+uname+"()"; String hasMethod = "has"+uname+"()"; if( field.getRule() == FieldDescriptor.REPEATED_RULE ) { getterMethod = "get"+uname+"List()"; if( field.getRule() != FieldDescriptor.REPEATED_RULE && (field.isNumberType() || field.getType()==FieldDescriptor.BOOL_TYPE) ) { p("if ("+hasMethod+" && ( "+getterMethod+"!=obj."+getterMethod+" ))"); } else { String uname = uCamel(field.getName()); String getterMethod="get"+uname+"()"; String hasMethod = "has"+uname+"()"; if( field.getRule() == FieldDescriptor.REPEATED_RULE ) { getterMethod = "get"+uname+"List()"; if( field.getRule() == FieldDescriptor.REPEATED_RULE ) { p("rc ^= ( "+uname.hashCode()+"^"+getterMethod+".hashCode() );"); } else if( field.isInteger32Type() ) { p("rc ^= ( "+uname.hashCode()+"^"+getterMethod+" );"); } else if( field.isInteger64Type() ) { p("rc ^= ( "+uname.hashCode()+"^(new Long("+getterMethod+")).hashCode() );"); } else if( field.getType()==FieldDescriptor.DOUBLE_TYPE ) { p("rc ^= ( "+uname.hashCode()+"^(new Double("+getterMethod+")).hashCode() );"); } else if( field.getType()==FieldDescriptor.FLOAT_TYPE ) {
OptionDescriptor optionD; FieldDescriptor fieldD; FieldDescriptor rc = new FieldDescriptor(parent); MessageDescriptor group = new MessageDescriptor(parent.getProtoDescriptor(), parent); rule = Rule(); fields.put(fieldD.getName(), fieldD); group.setName(name); group.setFields(fields); rc.setGroup(group); break; default: rc.setName(name); rc.setType(type); rc.setRule(rule); rc.setTag(tag); rc.setOptions(opts); {if (true) return rc;} throw new Error("Missing return statement in function");
String lname = lCamel(field.getName()); String type = javaType(field); boolean repeated = field.getRule()==FieldDescriptor.REPEATED_RULE; p("for(int i=0; i<size; i++) {"); indent(); if( field.isInteger32Type() ) { p("f_"+lname+".add(in.readInt());"); } else if( field.isInteger64Type() ) { p("f_"+lname+".add(in.readLong());"); } else if( field.getType() == FieldDescriptor.DOUBLE_TYPE ) { p("f_"+lname+".add(in.readDouble());"); } else if( field.getType() == FieldDescriptor.FLOAT_TYPE ) { p("f_"+lname+".add(in.readFloat());"); } else if( field.getType() == FieldDescriptor.BOOL_TYPE ) { p("f_"+lname+".add(in.readBoolean());"); } else if( field.getType() == FieldDescriptor.STRING_TYPE ) { p("f_"+lname+".add(in.readUTF());"); } else if( field.getType() == FieldDescriptor.BYTES_TYPE ) { p("byte b[] = new byte[in.readInt()];"); p("in.readFully(b);"); p("f_"+lname+".add(new "+type+"(b));"); } else if (field.getTypeDescriptor().isEnum() ) { p("f_"+lname+".add(" + type + ".valueOf(in.readShort()));"); } else { if( field.isInteger32Type() ) { p("f_"+lname+" = in.readInt();"); p("b_"+lname+" = true;");