// No interfaces are implemented
JavaTypeName[] interfaces = JavaDefinitionBuilder.EMPTY_TYPE_NAME_ARRAY;
// Now instantiate the java class representation.
JavaTypeName tagDCTypeName = CALToJavaNames.createTypeNameForTagDCFromType(typeConstructor, module);
JavaClassRep tagDCClassRep = new JavaClassRep(tagDCTypeName, className, classModifiers, interfaces);
// Add the body of the class.
// private final int tag;
JavaFieldDeclaration tagField = new JavaFieldDeclaration (Modifier.PRIVATE | Modifier.FINAL, JavaTypeName.INT, "tag", null);
tagDCClassRep.addFieldDeclaration(tagField);
// public TagDC(int tagVal) {this.tag = tagVal;}
JavaConstructor javaConstructor = new JavaConstructor(Modifier.PUBLIC, new String[]{"tagVal"}, new JavaTypeName[]{JavaTypeName.INT}, "TagDC");
tagDCClassRep.addConstructor(javaConstructor);
Assignment tagAssign = new Assignment (new JavaField.Instance(null, "tag", JavaTypeName.INT), METHODVAR_TAGVAL);
javaConstructor.addStatement(new ExpressionStatement(tagAssign));
// public final int getArity() {return 0;}
int modifiers = Modifier.PUBLIC | Modifier.FINAL;
JavaTypeName returnType = JavaTypeName.INT;
JavaMethod javaMethod = new JavaMethod(modifiers, returnType, "getArity");
tagDCClassRep.addMethod(javaMethod);
javaMethod.addStatement(new ReturnStatement(LiteralWrapper.make(Integer.valueOf(0))));
// public final int getOrdinalValue(){return tag;}