// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_FIXED32 = 5;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_FIXED64 = 1;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_LENGTH_DELIMITED = 2;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_VARINT = 0;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static int makeTag(int fieldNumber, int wireType) {
//     return (fieldNumber << TAG_TYPE_BITS) | wireType;
// }


import java.util.Map;
import java.util.StringTokenizer;
import org.fusesource.hawtbuf.proto.compiler.parser.ParseException;
import org.fusesource.hawtbuf.proto.compiler.parser.ProtoParser;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_FIXED32;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_FIXED64;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_LENGTH_DELIMITED;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_VARINT;
import static org.fusesource.hawtbuf.proto.WireFormat.makeTag;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashMap;
                        p(setter + "(value);");
                        unindent();
                        p("}");
                        // TODO: else store it as an known

                        unindent();
                        p("}");

                    } else if (field.getGroup() != null) {
                        errors.add("This code generator does not support group fields.");
//						p("case "+ makeTag(field.getTag(), WIRETYPE_START_GROUP)+ ":");
//						indent();
//						String type = javaType(field);
//						if (repeated) {
//							p(setter + "(readGroup(input, " + field.getTag()+ ", new " + type + "()));");
//						} else {
//							p("if (has" + uname + "()) {");
//							indent();
//							p("readGroup(input, " + field.getTag() + ", get"
//									+ uname + "());");
//							unindent();
//							p("} else {");
//							indent();
//							p(setter + "(readGroup(input, " + field.getTag()
//									+ ",new " + type + "()));");
//							unindent();
//							p("}");
//						}
//						p("");
                    } else {
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_FIXED32 = 5;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_FIXED64 = 1;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_LENGTH_DELIMITED = 2;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static final int WIRETYPE_VARINT = 0;
// 
// Path: hawtbuf-proto/src/main/java/org/fusesource/hawtbuf/proto/WireFormat.java
// public static int makeTag(int fieldNumber, int wireType) {
//     return (fieldNumber << TAG_TYPE_BITS) | wireType;
// }


// Path: hawtbuf-protoc/src/main/java/org/fusesource/hawtbuf/proto/compiler/AltJavaGenerator.java
import java.util.Map;
import java.util.StringTokenizer;
import org.fusesource.hawtbuf.proto.compiler.parser.ParseException;
import org.fusesource.hawtbuf.proto.compiler.parser.ProtoParser;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_FIXED32;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_FIXED64;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_LENGTH_DELIMITED;
import static org.fusesource.hawtbuf.proto.WireFormat.WIRETYPE_VARINT;
import static org.fusesource.hawtbuf.proto.WireFormat.makeTag;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashMap;

                        p(setter + "(value);");
                        unindent();
                        p("}");
                        // TODO: else store it as an known

                        unindent();
                        p("}");

                    } else if (field.getGroup() != null) {
                        errors.add("This code generator does not support group fields.");
//						p("case "+ makeTag(field.getTag(), WIRETYPE_START_GROUP)+ ":");
//						indent();
//						String type = javaType(field);
//						if (repeated) {
//							p(setter + "(readGroup(input, " + field.getTag()+ ", new " + type + "()));");
//						} else {
//							p("if (has" + uname + "()) {");
//							indent();
//							p("readGroup(input, " + field.getTag() + ", get"
//									+ uname + "());");
//							unindent();
//							p("} else {");
//							indent();
//							p(setter + "(readGroup(input, " + field.getTag()
//									+ ",new " + type + "()));");
//							unindent();
//							p("}");
//						}
//						p("");
                    } else {
                        p("case " + makeTag(field.getTag(), WIRETYPE_LENGTH_DELIMITED) + ":");