in activemq-protobuf/src/main/java/org/apache/activemq/protobuf/compiler/AltJavaGenerator.java [1781:1949]
private void generateFieldAccessor(String beanClassName, FieldDescriptor field) {
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;
// Create the fields..
p("// " + field.getRule() + " " + field.getType() + " " + field.getName() + " = " + field.getTag() + ";");
if( repeated ) {
p("private java.util.List<" + type + "> f_" + lname + ";");
p();
// Create the field accessors
p("public boolean has" + uname + "() {");
indent();
p("return bean.f_" + lname + "!=null && !bean.f_" + lname + ".isEmpty();");
unindent();
p("}");
p();
p("public java.util.List<" + type + "> get" + uname + "List() {");
indent();
p("return bean.f_" + lname + ";");
unindent();
p("}");
p();
p("public java.util.List<" + type + "> create" + uname + "List() {");
indent();
p("copyCheck();");
p("if( this.f_" + lname + " == null ) {");
indent();
p("this.f_" + lname + " = new java.util.ArrayList<" + type + ">();");
unindent();
p("}");
p("return bean.f_" + lname + ";");
unindent();
p("}");
p();
p("public "+beanClassName+" set" + uname + "List(java.util.List<" + type + "> " + lname + ") {");
indent();
p("copyCheck();");
p("this.f_" + lname + " = " + lname + ";");
p("return this;");
unindent();
p("}");
p();
p("public int get" + uname + "Count() {");
indent();
p("if( bean.f_" + lname + " == null ) {");
indent();
p("return 0;");
unindent();
p("}");
p("return bean.f_" + lname + ".size();");
unindent();
p("}");
p();
p("public " + type + " get" + uname + "(int index) {");
indent();
p("if( bean.f_" + lname + " == null ) {");
indent();
p("return null;");
unindent();
p("}");
p("return bean.f_" + lname + ".get(index);");
unindent();
p("}");
p();
p("public "+beanClassName+" set" + uname + "(int index, " + type + " value) {");
indent();
p("this.create" + uname + "List().set(index, value);");
p("return this;");
unindent();
p("}");
p();
p("public "+beanClassName+" add" + uname + "(" + type + " value) {");
indent();
p("this.create" + uname + "List().add(value);");
p("return this;");
unindent();
p("}");
p();
p("public "+beanClassName+" addAll" + uname + "(java.lang.Iterable<? extends " + type + "> collection) {");
indent();
p("org.apache.activemq.protobuf.MessageBufferSupport.addAll(collection, this.create" + uname + "List());");
p("return this;");
unindent();
p("}");
p();
p("public void clear" + uname + "() {");
indent();
p("copyCheck();");
p("this.f_" + lname + " = null;");
unindent();
p("}");
p();
} else {
p("private " + type + " f_" + lname + " = "+typeDefault+";");
if (primitive) {
p("private boolean b_" + lname + ";");
}
p();
// Create the field accessors
p("public boolean has" + uname + "() {");
indent();
if (primitive) {
p("return bean.b_" + lname + ";");
} else {
p("return bean.f_" + lname + "!=null;");
}
unindent();
p("}");
p();
p("public " + type + " get" + uname + "() {");
indent();
p("return bean.f_" + lname + ";");
unindent();
p("}");
p();
p("public "+beanClassName+" set" + uname + "(" + type + " " + lname + ") {");
indent();
p("copyCheck();");
if (primitive) {
if( auto_clear_optional_fields && field.isOptional() ) {
if( field.isStringType() && !"null".equals(typeDefault)) {
p("this.b_" + lname + " = ("+lname+" != "+typeDefault+");");
} else {
p("this.b_" + lname + " = ("+lname+" != "+typeDefault+");");
}
} else {
p("this.b_" + lname + " = true;");
}
}
p("this.f_" + lname + " = " + lname + ";");
p("return this;");
unindent();
p("}");
p();
p("public void clear" + uname + "() {");
indent();
p("copyCheck();");
if (primitive) {
p("this.b_" + lname + " = false;");
}
p("this.f_" + lname + " = " + typeDefault + ";");
unindent();
p("}");
p();
}
}