new JField(type.getSourceInfo(), "$VALUES", type, enumArrayType, true, Disposition.FINAL);
type.addField(valuesField);
SourceInfo info = type.getSourceInfo();
List<JExpression> initializers = new ArrayList<JExpression>();
for (JEnumField field : type.getEnumList()) {
JFieldRef fieldRef = new JFieldRef(info, null, field, type);
initializers.add(fieldRef);
}
JNewArray newExpr = JNewArray.createInitializers(info, enumArrayType, initializers);
JFieldRef valuesRef = new JFieldRef(info, null, valuesField, type);
JDeclarationStatement declStmt = new JDeclarationStatement(info, valuesRef, newExpr);
JBlock clinitBlock = ((JMethodBody) type.getMethods().get(0).getBody()).getBlock();
/*
* HACKY: the $VALUES array must be initialized immediately after all of