@Test public void testGetFullPackageNameWithClass() { Class clazz = mock(Class.class); when(clazz.getQualifiedName()).thenReturn( "Data::de::crowdcode::test::Company"); String sourceDirectoryPackageName = "Data"; String result = packageHelper.getFullPackageName(clazz, sourceDirectoryPackageName); verify(clazz, atLeastOnce()).getQualifiedName(); assertEquals("de.crowdcode.test.Company", result); }
public void setUpMocks() throws Exception { String fullQualifiedName = "de::crowdcode::kissmda::testapp::components::Company"; clazz = mock(Class.class); when(clazz.getQualifiedName()).thenReturn(fullQualifiedName); when(clazz.getName()).thenReturn("Company"); when(clazz.getAssociations()) .thenReturn(new UniqueEList<Association>()); when(clazz.getImplementedInterfaces()).thenReturn( new UniqueEList<Interface>()); }
public void setUpMocks() throws Exception { String fullQualifiedName = "de::crowdcode::kissmda::testapp::components::CompanyException"; clazz = mock(Class.class); when(clazz.getQualifiedName()).thenReturn(fullQualifiedName); when(clazz.getName()).thenReturn("CompanyException"); when(clazz.getAssociations()) .thenReturn(new UniqueEList<Association>()); when(clazz.getImplementedInterfaces()).thenReturn( new UniqueEList<Interface>()); when(clazz.getGeneralizations()).thenReturn( new UniqueEList<Generalization>()); }
public void setUpMocks() throws Exception { String fullQualifiedName = "de::crowdcode::kissmda::testapp::components::Company"; clazz = mock(Class.class); when(clazz.getQualifiedName()).thenReturn(fullQualifiedName); when(clazz.getName()).thenReturn("Company"); when(clazz.getAssociations()) .thenReturn(new UniqueEList<Association>()); when(clazz.getImplementedInterfaces()).thenReturn( new UniqueEList<Interface>()); when(clazz.getGeneralizations()).thenReturn( new UniqueEList<Generalization>()); when(clazz.getOwnedComments()).thenReturn(new UniqueEList<Comment>()); }
private void addEntries(OJAnnotatedClass globalMap, org.eclipse.uml2.uml.Class clazz) { OJAnnotatedOperation addAllEntries = globalMap.findOperation("addAllEntries"); addAllEntries.getBody().addToStatements("this." + UmlgGenerationUtil.QualifiedNameClassMapName + ".put(\"" + clazz.getQualifiedName() + "\", " + UmlgClassOperations.className(clazz) + ".class)"); globalMap.addToImports(UmlgClassOperations.getPathName(clazz)); }
@Test public void testGenerateClassCheckedExceptionWithInheritance() { 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::SuperCompanyException"); when(clazz.getGeneralizations()).thenReturn(generalizations); AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); TypeDeclaration typeDeclaration = exceptionGenerator.generateClass( clazz, ast, cu); assertEquals(typeDeclaration.toString(), "public class CompanyException extends de.test.SuperCompanyException {\n}\n"); }
@Test public void testGenerateClassUncheckedExceptionWithInheritance() { 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::SuperCompanyException"); when(clazz.getGeneralizations()).thenReturn(generalizations); AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); exceptionGenerator.setCheckedException(false); TypeDeclaration typeDeclaration = exceptionGenerator.generateClass( clazz, ast, cu); assertEquals(typeDeclaration.toString(), "public class CompanyException extends de.test.SuperCompanyException {\n}\n"); }
@Test public void testGenerateClassUncheckedExceptionWithMultipleInheritance() { EList<Generalization> generalizations = new UniqueEList<Generalization>(); Generalization generalization1 = mock(Generalization.class); Generalization generalization2 = mock(Generalization.class); Class clazzGeneralization1 = mock(Class.class); Class clazzGeneralization2 = mock(Class.class); generalizations.add(generalization1); generalizations.add(generalization2); when(generalization1.getGeneral()).thenReturn(clazzGeneralization1); when(clazzGeneralization1.getQualifiedName()).thenReturn( "de::test::SuperCompanyException"); when(generalization2.getGeneral()).thenReturn(clazzGeneralization2); when(clazzGeneralization2.getQualifiedName()).thenReturn( "de::test::SuperDuperCompanyException"); when(clazz.getGeneralizations()).thenReturn(generalizations); AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); exceptionGenerator.setCheckedException(false); try { exceptionGenerator.generateClass(clazz, ast, cu); assertTrue(false); } catch (TransformerException e) { logger.info("Error: " + e.getMessage()); assertTrue(true); } }
@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()); }
fromInverseQualifiedName, StringUtils.uncapitalize(UmlgClassOperations.className(clazz)), clazz.getQualifiedName(), clazz.getName(), "inverseOf::" + clazz.getName(), "inverseOf::" + clazz.getQualifiedName(), false, false, null, Collections.<Validation>emptyList(), true, false, false, false, true, false, false, true, false, -1, 0, 1, false, false, false/*ordered*/, false, true, true, false, true, "root" + UmlgClassOperations.className(clazz),
private void addConstraints(OJAnnotatedClass annotatedClass, Class clazz) { List<Constraint> constraints = ModelLoader.INSTANCE.getConstraints(clazz); for (Constraint constraint : constraints) { ConstraintWrapper constraintWrapper = new ConstraintWrapper(constraint); OJAnnotatedOperation checkClassConstraint = new OJAnnotatedOperation(UmlgClassOperations.checkClassConstraintName(constraint)); checkClassConstraint.setReturnType(new OJPathName("java.util.List").addToGenerics(UmlgGenerationUtil.UmlgConstraintViolation)); OJField result = new OJField("result", new OJPathName("java.util.List").addToGenerics(UmlgGenerationUtil.UmlgConstraintViolation)); result.setInitExp("new ArrayList<" + UmlgGenerationUtil.UmlgConstraintViolation.getLast() + ">()"); OJIfStatement ifConstraintFails = new OJIfStatement(); String ocl = constraintWrapper.getConstraintOclAsString(); checkClassConstraint.setComment(String.format("Implements the ocl statement for constraint '%s'\n<pre>\n%s\n</pre>", constraintWrapper.getName(), ocl)); OCLExpression<Classifier> oclExp = UmlgOcl2Parser.INSTANCE.parseOcl(ocl); ifConstraintFails.setCondition("(" + UmlgOcl2Java.oclToJava(clazz, annotatedClass, oclExp) + ") == false"); ifConstraintFails.addToThenPart("result.add(new " + UmlgGenerationUtil.UmlgConstraintViolation.getLast() + "(\"" + constraintWrapper.getName() + "\", \"" + clazz.getQualifiedName() + "\", \"ocl\\n" + ocl.replace("\n", "\\n") + "\\nfails!\"))"); checkClassConstraint.getBody().addToStatements(ifConstraintFails); checkClassConstraint.getBody().addToLocals(result); checkClassConstraint.getBody().addToStatements("return result"); annotatedClass.addToOperations(checkClassConstraint); } }
annotatedClass.addToImports(UmlgGenerationUtil.ToJsonUtil); tryStatement.getTryPart().addToStatements("json.append(\"{\\\"meta\\\" : {\")"); tryStatement.getTryPart().addToStatements("json.append(\"\\\"qualifiedName\\\": \\\"" + clazz.getQualifiedName() + "\\\"\")");
private void addGetMetaClassForQualifiedName(OJAnnotatedClass root) { OJAnnotatedOperation getMetaClassForQualifiedName = new OJAnnotatedOperation("getMetaClassForQualifiedName", UmlgGenerationUtil.UmlgMetaNode.getLast()); getMetaClassForQualifiedName.addToParameters(new OJParameter("qualifiedName", "String")); getMetaClassForQualifiedName.addAnnotationIfNew(new OJAnnotationValue(new OJPathName("java.lang.Override"))); root.addToOperations(getMetaClassForQualifiedName); root.addToImports(UmlgGenerationUtil.UmlgMetaNode); OJSwitchStatement ojSwitchStatement = new OJSwitchStatement(); ojSwitchStatement.setCondition("qualifiedName"); for (Class clazz : ModelLoader.INSTANCE.getAllConcreteClasses()) { OJSwitchCase ojSwitchCase = new OJSwitchCase(); ojSwitchCase.setLabel("\"" + clazz.getQualifiedName() + "\""); ojSwitchCase.getBody().addToStatements("return get" + UmlgClassOperations.getMetaClassPathName(clazz).getLast() + "()"); ojSwitchCase.setBreakInCase(false); ojSwitchStatement.addToCases(ojSwitchCase); } OJSwitchCase ojSwitchCase = new OJSwitchCase(); ojSwitchCase.getBody().addToStatements("throw new IllegalArgumentException(\"Unknown qualified name: \" + qualifiedName + \"!\")"); ojSwitchStatement.setDefCase(ojSwitchCase); getMetaClassForQualifiedName.getBody().addToStatements(ojSwitchStatement); }
tryStatement.getTryPart().addToStatements("json.append(\"\\\"qualifiedName\\\": \\\"" + clazz.getQualifiedName() + "\\\"\")"); tryStatement.getTryPart().addToStatements("json.append(\",\\\"qualifiedNameTo\\\": \\\"" + classifier.getQualifiedName() + "\\\"\")");
private void addGetParentRepresentation(Class clazz, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation getParent = new OJAnnotatedOperation("getParent", UmlgRestletGenerationUtil.Representation); getParent.addParam("parent", UmlgClassOperations.getPathName(clazz)); getParent.setVisibility(OJVisibilityKindGEN.PRIVATE); getParent.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); getParent.getBody().addToStatements("StringBuilder json = new StringBuilder()"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); getParent.getBody().addToStatements("json.append(\"[{\\\"data\\\": \")"); getParent.getBody().addToStatements("json.append(" + "parent.toJsonWithoutCompositeParent())"); getParent.getBody().addToStatements("meta", "json.append(\", \\\"meta\\\" : {\")"); getParent.getBody().addToStatements("json.append(\"\\\"qualifiedName\\\": \\\"" + clazz.getQualifiedName() + "\\\"\")"); getParent.getBody().addToStatements("json.append(\", \\\"to\\\": \")"); getParent.getBody().addToStatements("json.append(" + UmlgClassOperations.propertyEnumName(clazz) + ".asJson())"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz).append(UmlgClassOperations.propertyEnumName(clazz))); getParent.getBody().addToStatements("json.append(\"}}]\")"); getParent.getBody().addToStatements("return new " + UmlgRestletGenerationUtil.JsonRepresentation.getLast() + "(json.toString())"); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(getParent); }
private void addGetRepresentation(Class clazz, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation get = new OJAnnotatedOperation("get", UmlgRestletGenerationUtil.Representation); get.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); UmlgGenerationUtil.addOverrideAnnotation(get); OJTryStatement tryStatement = new OJTryStatement(); tryStatement.getTryPart().addToStatements("StringBuilder json = new StringBuilder()"); tryStatement.getTryPart().addToStatements( "this." + getIdFieldName(clazz) + "= " + UmlgRestletGenerationUtil.UmlgURLDecoder.getLast() + ".decode((String)getRequestAttributes().get(\"" + getIdFieldName(clazz) + "\"))"); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgURLDecoder); tryStatement.getTryPart().addToStatements( UmlgClassOperations.className(clazz) + " c = " + UmlgGenerationUtil.UMLGAccess + ".getEntity(this." + getIdFieldName(clazz) + ")"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); tryStatement.getTryPart().addToStatements("json.append(\"[{\\\"data\\\": \")"); tryStatement.getTryPart().addToStatements("json.append(" + "c.toJsonWithoutCompositeParent())"); tryStatement.getTryPart().addToStatements("meta", "json.append(\", \\\"meta\\\" : {\")"); tryStatement.getTryPart().addToStatements("json.append(\"\\\"qualifiedName\\\": \\\"" + clazz.getQualifiedName() + "\\\"\")"); tryStatement.getTryPart().addToStatements("json.append(\"}}]\")"); tryStatement.getTryPart().addToStatements("return new " + UmlgRestletGenerationUtil.JsonRepresentation.getLast() + "(json.toString())"); get.getBody().addToStatements(tryStatement); tryStatement.setCatchPart(null); tryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(get); }
ojTry.getTryPart().addToStatements("json.append(" + "c.toJsonWithoutCompositeParent())"); ojTry.getTryPart().addToStatements("meta", "json.append(\", \\\"meta\\\" : {\")"); ojTry.getTryPart().addToStatements("json.append(\"\\\"qualifiedName\\\": \\\"" + clazz.getQualifiedName() + "\\\"\")"); ojTry.getTryPart().addToStatements("json.append(\", \\\"to\\\": \")"); ojTry.getTryPart().addToStatements("json.append(" + UmlgClassOperations.propertyEnumName(clazz) + ".asJson())");