@SuppressWarnings("unchecked") @Test public void testGenerateClassWithInheritance() { EList<Generalization> generalizations = new UniqueEList<Generalization>(); Generalization generalization = mock(Generalization.class); Class clazzGeneralization = mock(Class.class); generalizations.add(generalization); when(generalization.getGeneral()).thenReturn(clazzGeneralization); when(clazzGeneralization.getQualifiedName()).thenReturn( "de::test::SuperCompany"); when(clazz.getGeneralizations()).thenReturn(generalizations); AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); TypeDeclaration td = ast.newTypeDeclaration(); td.setInterface(true); Modifier modifier = ast .newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD); td.modifiers().add(modifier); td.setName(ast.newSimpleName("Company")); Name name = ast.newName("de.test.SuperCompany"); SimpleType simpleType = ast.newSimpleType(name); td.superInterfaceTypes().add(simpleType); TypeDeclaration typeDeclaration = interfaceGenerator.generateClass( clazz, ast, cu); assertEquals(typeDeclaration.toString(), td.toString()); }
@SuppressWarnings("unchecked") public TypeDeclaration generateClass(Classifier clazz, AST ast, CompilationUnit cu) { String className = getClassName(clazz); TypeDeclaration td = ast.newTypeDeclaration(); td.setInterface(true); td.modifiers().add( ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD)); td.setName(ast.newSimpleName(className)); generateClassInheritance(clazz, ast, td); generateClassTemplateParams(clazz, ast, td); generateClassJavadoc(clazz, ast, td); cu.types().add(td); return td; }
InterfaceGenerator { @SuppressWarnings("unchecked") public TypeDeclaration generateClass(Classifier clazz, AST ast, CompilationUnit cu) { String className = getClassName(clazz); TypeDeclaration td = ast.newTypeDeclaration(); td.setInterface(true); td.modifiers().add( ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD)); td.setName(ast.newSimpleName(className)); generateClassInheritance(clazz, ast, td); generateClassTemplateParams(clazz, ast, td); generateClassJavadoc(clazz, ast, td); cu.types().add(td); return td; } }
InterfaceGenerator { @SuppressWarnings("unchecked") public TypeDeclaration generateClass(Classifier clazz, AST ast, CompilationUnit cu) { String className = getClassName(clazz); TypeDeclaration td = ast.newTypeDeclaration(); td.setInterface(true); td.modifiers().add( ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD)); td.setName(ast.newSimpleName(className)); generateClassInheritance(clazz, ast, td); generateClassTemplateParams(clazz, ast, td); generateClassJavadoc(clazz, ast, td); cu.types().add(td); return td; }  }
InterfaceGenerator { @SuppressWarnings("unchecked") public TypeDeclaration generateClass(Classifier clazz, AST ast, CompilationUnit cu) { String className = getClassName(clazz); TypeDeclaration td = ast.newTypeDeclaration(); td.setInterface(true); td.modifiers().add( ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD)); td.setName(ast.newSimpleName(className)); generateClassInheritance(clazz, ast, td); generateClassTemplateParams(clazz, ast, td); generateClassJavadoc(clazz, ast, td); cu.types().add(td); return td; }  CompilationUnit generateInterface(Classifier clazz,
			String sourceDirectoryPackageName); @SuppressWarnings("unchecked") void generatePackageJavadoc(AST ast,
			PackageDeclaration packageDeclaration, String... comment); void generateGettersSetters(Classifier clazz, AST ast,
			TypeDeclaration td); MethodDeclaration generateGetterMethod(AST ast,
			AbstractTypeDeclaration td, Property property, String umlTypeName,
			String umlQualifiedTypeName); MethodDeclaration generateGetterMethod(AST ast,
			AbstractTypeDeclaration td, Property property, String umlTypeName,
			String umlQualifiedTypeName, String sourceDirectoryPackageName); @SuppressWarnings("unchecked") void generateSetterMethod(AST ast, AbstractTypeDeclaration td,
			Property property, String umlTypeName, String umlQualifiedTypeName); void generateAssociationEndUpperCardinalityMultiples(AST ast,
			AbstractTypeDeclaration td, Property property,
			MethodDeclaration mdGetter, String umlTypeName,
			String umlQualifiedTypeName); void generateAssociationEndUpperCardinalityMultiples(AST ast,
			AbstractTypeDeclaration td, Operation operation,
			MethodDeclaration mdGetter, String umlTypeName,
			String umlQualifiedTypeName); void generateAssociationEndUpperCardinalityMultiples(AST ast,
			AbstractTypeDeclaration td, Parameter parameter,
			MethodDeclaration md, String umlTypeName,
			String umlQualifiedTypeName, String umlPropertyName); void generateGetterSetterJavadoc(AST ast, Property property,
			MethodDeclaration methodDeclaration); @SuppressWarnings("unchecked") TypeDeclaration generateClass(Classifier clazz, AST ast,
			CompilationUnit cu); void generateClassJavadoc(Classifier clazz, AST ast,
			AbstractTypeDeclaration td); @SuppressWarnings("unchecked") void generateClassTemplateParams(Classifier clazz, AST ast,
			TypeDeclaration td); void generatePackage(Classifier clazz, AST ast, CompilationUnit cu); void generateMethods(Classifier clazz, AST ast, TypeDeclaration td); @SuppressWarnings("unchecked") void generateMethodTemplateParams(AST ast, Operation operation,
			MethodDeclaration md); void generateMethodJavadoc(AST ast, Operation operation,
			MethodDeclaration md); void generateMethodParams(AST ast, TypeDeclaration td,
			Operation operation, MethodDeclaration md); }
InterfaceGenerator { @SuppressWarnings("unchecked") public TypeDeclaration generateClass(Classifier clazz, AST ast, CompilationUnit cu) { String className = getClassName(clazz); TypeDeclaration td = ast.newTypeDeclaration(); td.setInterface(true); td.modifiers().add( ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD)); td.setName(ast.newSimpleName(className)); generateClassInheritance(clazz, ast, td); generateClassTemplateParams(clazz, ast, td); generateClassJavadoc(clazz, ast, td); cu.types().add(td); return td; }  CompilationUnit generateInterface(Classifier clazz,
			String sourceDirectoryPackageName); @SuppressWarnings("unchecked") void generatePackageJavadoc(AST ast,
			PackageDeclaration packageDeclaration, String... comment); void generateGettersSetters(Classifier clazz, AST ast,
			TypeDeclaration td); MethodDeclaration generateGetterMethod(AST ast,
			AbstractTypeDeclaration td, Property property, String umlTypeName,
			String umlQualifiedTypeName); MethodDeclaration generateGetterMethod(AST ast,
			AbstractTypeDeclaration td, Property property, String umlTypeName,
			String umlQualifiedTypeName, String sourceDirectoryPackageName); @SuppressWarnings("unchecked") void generateSetterMethod(AST ast, AbstractTypeDeclaration td,
			Property property, String umlTypeName, String umlQualifiedTypeName); void generateAssociationEndUpperCardinalityMultiples(AST ast,
			AbstractTypeDeclaration td, Property property,
			MethodDeclaration mdGetter, String umlTypeName,
			String umlQualifiedTypeName); void generateAssociationEndUpperCardinalityMultiples(AST ast,
			AbstractTypeDeclaration td, Operation operation,
			MethodDeclaration mdGetter, String umlTypeName,
			String umlQualifiedTypeName); void generateAssociationEndUpperCardinalityMultiples(AST ast,
			AbstractTypeDeclaration td, Parameter parameter,
			MethodDeclaration md, String umlTypeName,
			String umlQualifiedTypeName, String umlPropertyName); void generateGetterSetterJavadoc(AST ast, Property property,
			MethodDeclaration methodDeclaration); @SuppressWarnings("unchecked") TypeDeclaration generateClass(Classifier clazz, AST ast,
			CompilationUnit cu); void generateClassJavadoc(Classifier clazz, AST ast,
			AbstractTypeDeclaration td); @SuppressWarnings("unchecked") void generateClassTemplateParams(Classifier clazz, AST ast,
			TypeDeclaration td); void generatePackage(Classifier clazz, AST ast, CompilationUnit cu); void generateMethods(Classifier clazz, AST ast, TypeDeclaration td); @SuppressWarnings("unchecked") void generateMethodTemplateParams(AST ast, Operation operation,
			MethodDeclaration md); void generateMethodJavadoc(AST ast, Operation operation,
			MethodDeclaration md); void generateMethodParams(AST ast, TypeDeclaration td,
			Operation operation, MethodDeclaration md);  }