EnumGenerator { public CompilationUnit generateEnum(Classifier clazz, String sourceDirectoryPackageName) { this.sourceDirectoryPackageName = sourceDirectoryPackageName; AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); generatePackage(clazz, ast, cu); EnumDeclaration ed = generateEnum(clazz, ast, cu); generateAttributes(clazz, ast, ed); generateConstructor(clazz, ast, ed); generateConstants(clazz, ast, ed); generateGetterMethod(clazz, ast, ed); logger.log(Level.INFO, "Compilation unit: \n\n" + cu.toString()); return cu; }  void setConstructorParameterNames(
			ArrayList<String> constructorParameterNames); CompilationUnit generateEnum(Classifier clazz,
			String sourceDirectoryPackageName); @SuppressWarnings("unchecked") void generateAttributes(Classifier clazz, AST ast, EnumDeclaration ed); FieldDeclaration generateAttribute(Classifier clazz, AST ast,
			Property property); @SuppressWarnings("unchecked") void generateGetterMethod(Classifier clazz, AST ast,
			EnumDeclaration ed); void generateGetterMethod(Classifier clazz, AST ast,
			EnumDeclaration ed, String sourceDirectoryPackageName); @SuppressWarnings("unchecked") void generateConstructor(Classifier clazz, AST ast,
			EnumDeclaration ed); @SuppressWarnings("unchecked") EnumDeclaration generateEnum(Classifier clazz, AST ast,
			CompilationUnit cu); void generateClassJavadoc(Element clazz, AST ast, BodyDeclaration td); void generatePackage(Classifier clazz, AST ast, CompilationUnit cu); @SuppressWarnings("unchecked") void generateConstants(Classifier clazz, AST ast, EnumDeclaration ed);  }
@Test public void testGenerateEnum() { AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); enumGenerator.generateEnum(clazz, ast, cu); assertEquals("public enum Company {}\n", cu.toString()); }