put information into Type enum instead of static methods
diff --git a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java
index 2ffa8be..d794c50 100644
--- a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java
+++ b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/edu/uci/ics/asterix/recordmanagergenerator/RecordType.java
@@ -23,10 +23,26 @@
 public class RecordType {
     
     enum Type {
-        BYTE,
-        SHORT,
-        INT,
-        GLOBAL
+        BYTE  (1, "byte",  "get",      "put",      "(byte)0xde",          "RecordManagerTypes.Byte.append"),
+        SHORT (2, "short", "getShort", "putShort", "(short)0xdead",       "RecordManagerTypes.Short.append"),
+        INT   (4, "int",   "getInt",   "putInt",   "0xdeadbeef",          "RecordManagerTypes.Int.append"),
+        GLOBAL(8, "long",  "getLong",  "putLong",  "0xdeadbeefdeadbeefl", "RecordManagerTypes.Global.append");
+        
+        Type(int size, String javaType, String bbGetter, String bbSetter, String deadMemInitializer, String appender) {
+            this.size = size;
+            this.javaType = javaType;
+            this.bbGetter = bbGetter;
+            this.bbSetter = bbSetter;
+            this.deadMemInitializer = deadMemInitializer;
+            this.appender = appender;
+        }
+        
+        int size;
+        String javaType;
+        String bbGetter;
+        String bbSetter;
+        String deadMemInitializer;
+        String appender;
     }
     
     static class Field {
@@ -60,7 +76,7 @@
         StringBuilder appendMemoryManagerGetMethod(StringBuilder sb, String indent, int level) {
             sb = indent(sb, indent, level);
             sb.append("public ")
-              .append(javaType(type))
+              .append(type.javaType)
               .append(' ')
               .append(methodName("get"))
               .append("(int slotNum) {\n");
@@ -72,7 +88,7 @@
             sb.append("final ByteBuffer b = buf.bb;\n");
             sb = indent(sb, indent, level + 1);
             sb.append("return b.")
-              .append(bbGetter(type))
+              .append(type.bbGetter)
               .append("((slotNum % NO_SLOTS) * ITEM_SIZE + ")
               .append(offsetName())
               .append(");\n");
@@ -86,13 +102,13 @@
             sb.append("public void ")
               .append(methodName("set"))
               .append("(int slotNum, ")
-              .append(javaType(type))
+              .append(type.javaType)
               .append(" value) {\n");
             sb = indent(sb, indent, level + 1);
             sb.append("final ByteBuffer b = buffers.get(slotNum / NO_SLOTS).bb;\n");
             sb = indent(sb, indent, level + 1);
             sb.append("b.")
-              .append(bbSetter(type))
+              .append(type.bbSetter)
               .append("((slotNum % NO_SLOTS) * ITEM_SIZE + ")
               .append(offsetName())
               .append(", value);\n");
@@ -104,7 +120,7 @@
         StringBuilder appendArenaManagerGetMethod(StringBuilder sb, String indent, int level) {
             sb = indent(sb, indent, level);
             sb.append("public ")
-              .append(javaType(type))
+              .append(type.javaType)
               .append(' ')
               .append(methodName("get"))
               .append("(long slotNum) {\n");
@@ -130,7 +146,7 @@
             sb.append("public void ")
               .append(methodName("set"))
               .append("(long slotNum, ")
-              .append(javaType(type))
+              .append(type.javaType)
               .append(" value) {\n");
             if (initial != null) {
               sb = indent(sb, indent, level + 1);
@@ -152,14 +168,14 @@
         StringBuilder appendInitializers(StringBuilder sb, String indent, int level) {
             sb = indent(sb, indent, level);
             sb.append("bb.")
-              .append(bbSetter(type))
+              .append(type.bbSetter)
               .append("(slotNum * ITEM_SIZE + ")
               .append(offsetName())
               .append(", ");
             if (initial != null) {
                 sb.append(initial);
             } else {
-                sb.append(deadMemInitializer(type));
+                sb.append(type.deadMemInitializer);
             }
             sb.append(");\n");
             return sb;
@@ -171,11 +187,11 @@
             }
             sb = indent(sb, indent, level);
             sb.append("if (bb.")
-              .append(bbGetter(type))
+              .append(type.bbGetter)
               .append("(itemOffset + ")
               .append(offsetName())
               .append(") == ")
-              .append(deadMemInitializer(type))
+              .append(type.deadMemInitializer)
               .append(") {\n");
             sb = indent(sb, indent, level + 1);
             sb.append("String msg = \"invalid value in field ")
@@ -242,7 +258,7 @@
     private void calcOffsetsAndSize() {
         Collections.sort(fields, new Comparator<Field>() {
             public int compare(Field left, Field right) {
-                return size(right.type) - size(left.type);
+                return right.type.size - left.type.size;
             }
         });
         // sort fields by size and align the items
@@ -252,7 +268,7 @@
             final Field field = fields.get(i);
             assert field.offset == -1;
             field.offset = totalSize;
-            final int size = size(field.type);
+            final int size = field.type.size;
             totalSize += size;
             if (size > alignment) alignment = size;
         }
@@ -265,66 +281,6 @@
         return fields.size();
     }
     
-    static int size(Type t) {
-        switch(t) {
-            case BYTE:   return 1;
-            case SHORT:  return 2;
-            case INT:    return 4;
-            case GLOBAL: return 8;
-            default:     throw new IllegalArgumentException();
-        }
-    }
-    
-    static String javaType(Type t) {
-        switch(t) {
-            case BYTE:   return "byte";
-            case SHORT:  return "short";
-            case INT:    return "int";
-            case GLOBAL: return "long";
-            default:     throw new IllegalArgumentException();
-        }
-    }
-    
-    static String bbGetter(Type t) {
-        switch(t) {
-            case BYTE:   return "get";
-            case SHORT:  return "getShort";
-            case INT:    return "getInt";
-            case GLOBAL: return "getLong";
-            default:     throw new IllegalArgumentException();
-        }
-    }
-    
-    static String bbSetter(Type t) {
-        switch(t) {
-            case BYTE:   return "put";
-            case SHORT:  return "putShort";
-            case INT:    return "putInt";
-            case GLOBAL: return "putLong";
-            default:     throw new IllegalArgumentException();
-        }
-    }
-    
-    static String deadMemInitializer(Type t) {
-        switch(t) {
-            case BYTE:   return "(byte)0xde";
-            case SHORT:  return "(short)0xdead";
-            case INT:    return "0xdeadbeef";
-            case GLOBAL: return "0xdeadbeefdeadbeefl";
-            default:     throw new IllegalArgumentException();
-        }        
-    }
-    
-    static String appender(Type t) {
-        switch(t) {
-            case BYTE:   return "RecordManagerTypes.Byte.append";
-            case SHORT:  return "RecordManagerTypes.Short.append";
-            case INT:    return "RecordManagerTypes.Int.append";
-            case GLOBAL: return "RecordManagerTypes.Global.append";
-            default:     throw new IllegalArgumentException();
-        }        
-    }
-    
     static String padRight(String s, int n) {
         return String.format("%1$-" + n + "s", s);  
     }
@@ -345,7 +301,7 @@
               .append(field.offsetName())
               .append(" = ")
               .append(field.offset).append("; // size: ")
-              .append(size(field.type)).append("\n");
+              .append(field.type.size).append("\n");
         }
         return sb;
     }
@@ -367,15 +323,15 @@
             sb = indent(sb, indent, level);
             sb.append("for (int i = 0; i < NO_SLOTS; ++i) {\n");
             sb = indent(sb, indent, level + 1);
-            sb.append(javaType(field.type))
+            sb.append(field.type.javaType)
               .append(" value = bb.")
-              .append(bbGetter(field.type))
+              .append(field.type.bbGetter)
               .append("(i * ITEM_SIZE + ")
               .append(field.offsetName())
               .append(");\n");
             sb = indent(sb, indent, level + 1);
             sb.append("sb = ")
-              .append(appender(field.type))
+              .append(field.type.appender)
               .append("(sb, value);\n");
             sb = indent(sb, indent, level + 1);
             sb.append("sb.append(\" | \");\n");