private void generateMethodAssertInitialized()

in activemq-protobuf/src/main/java/org/apache/activemq/protobuf/compiler/JavaGenerator.java [1027:1086]


    private void generateMethodAssertInitialized(MessageDescriptor m, String className) {
        
        p("public java.util.ArrayList<String> missingFields() {");
        indent();
        p("java.util.ArrayList<String> missingFields = super.missingFields();");
        
        for (FieldDescriptor field : m.getFields().values()) {
            String uname = uCamel(field.getName());
            if( field.isRequired() ) {
                p("if(  !has" + uname + "() ) {");
                indent();
                p("missingFields.add(\""+field.getName()+"\");");
                unindent();
                p("}");
            }
        }
        
        if( !deferredDecode ) {
	        for (FieldDescriptor field : m.getFields().values()) {
	            if( field.getTypeDescriptor()!=null && !field.getTypeDescriptor().isEnum()) {
	                String uname = uCamel(field.getName());
	                p("if( has" + uname + "() ) {");
	                indent();
	                if( !field.isRepeated() ) {
	                    p("try {");
	                    indent();
	                    p("get" + uname + "().assertInitialized();");
	                    unindent();
	                    p("} catch (org.apache.activemq.protobuf.UninitializedMessageException e){");
	                    indent();
	                    p("missingFields.addAll(prefix(e.getMissingFields(),\""+field.getName()+".\"));");
	                    unindent();
	                    p("}");
	                } else {
	                    String type = javaCollectionType(field);
	                    p("java.util.List<"+type+"> l = get" + uname + "List();");
	                    p("for( int i=0; i < l.size(); i++ ) {");
	                    indent();
	                    p("try {");
	                    indent();
	                    p("l.get(i).assertInitialized();");
	                    unindent();
	                    p("} catch (org.apache.activemq.protobuf.UninitializedMessageException e){");
	                    indent();
	                    p("missingFields.addAll(prefix(e.getMissingFields(),\""+field.getName()+"[\"+i+\"]\"));");
	                    unindent();
	                    p("}");
	                    unindent();
	                    p("}");
	                }
	                unindent();
	                p("}");
	            }
	        }
        }
        p("return missingFields;");
        unindent();
        p("}");
        p();
    }