Search in sources :

Example 11 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class EmptyViewsChecker method findEmptyViews.

// Empty Views
List<IIssue> findEmptyViews() {
    List<IIssue> issues = new ArrayList<IIssue>();
    for (IArchimateDiagramModel view : fViews) {
        if (view.getChildren().isEmpty()) {
            String viewName = ArchiLabelProvider.INSTANCE.getLabel(view);
            String description = NLS.bind(fDescription, viewName);
            String explanation = NLS.bind(fExplanation, viewName);
            IIssue issue = new AdviceType(fName, description, explanation, view);
            issues.add(issue);
        }
    }
    return issues;
}
Also used : AdviceType(com.archimatetool.hammer.validation.issues.AdviceType) ArrayList(java.util.ArrayList) IIssue(com.archimatetool.hammer.validation.issues.IIssue) IArchimateDiagramModel(com.archimatetool.model.IArchimateDiagramModel)

Example 12 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class InvalidRelationsChecker method findInvalidRelations.

// Invalid Relations
List<IIssue> findInvalidRelations() {
    List<IIssue> issues = new ArrayList<IIssue>();
    for (IArchimateRelationship relation : fRelations) {
        boolean valid = ArchimateModelUtils.isValidRelationship(relation.getSource(), relation.getTarget(), relation.eClass());
        if (!valid) {
            String className = ArchiLabelProvider.INSTANCE.getDefaultName(relation.eClass());
            String description = NLS.bind(fDescription, new Object[] { className, ArchiLabelProvider.INSTANCE.getLabel(relation.getSource()), ArchiLabelProvider.INSTANCE.getLabel(relation.getTarget()) });
            String explanation = NLS.bind(fExplanation, new Object[] { className, ArchiLabelProvider.INSTANCE.getDefaultName(relation.getSource().eClass()), ArchiLabelProvider.INSTANCE.getDefaultName(relation.getTarget().eClass()) });
            IIssue issue = new ErrorType(fName, description, explanation, relation);
            issues.add(issue);
        }
    }
    return issues;
}
Also used : ErrorType(com.archimatetool.hammer.validation.issues.ErrorType) ArrayList(java.util.ArrayList) IArchimateRelationship(com.archimatetool.model.IArchimateRelationship) IIssue(com.archimatetool.hammer.validation.issues.IIssue)

Example 13 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class NestedElementsChecker method findWrongNestedElements.

// Nested diagram elements without correct relationships
List<IIssue> findWrongNestedElements() {
    List<IIssue> issues = new ArrayList<IIssue>();
    for (IArchimateDiagramModel dm : fViews) {
        for (Iterator<EObject> iter = dm.eAllContents(); iter.hasNext(); ) {
            EObject eObject = iter.next();
            if (eObject instanceof IDiagramModelArchimateObject) {
                IDiagramModelArchimateObject parent = (IDiagramModelArchimateObject) eObject;
                for (IDiagramModelObject dmoChild : parent.getChildren()) {
                    if (dmoChild instanceof IDiagramModelArchimateObject) {
                        IDiagramModelArchimateObject child = (IDiagramModelArchimateObject) dmoChild;
                        if (isNestedWithoutValidRelation(parent, child)) {
                            String description = NLS.bind(fDescription, new Object[] { child.getName(), parent.getName() });
                            IIssue issue = new AdviceType(fName, description, fExplanation, child);
                            issues.add(issue);
                        }
                    }
                }
            }
        }
    }
    return issues;
}
Also used : AdviceType(com.archimatetool.hammer.validation.issues.AdviceType) EObject(org.eclipse.emf.ecore.EObject) ArrayList(java.util.ArrayList) IDiagramModelArchimateObject(com.archimatetool.model.IDiagramModelArchimateObject) IDiagramModelObject(com.archimatetool.model.IDiagramModelObject) IIssue(com.archimatetool.hammer.validation.issues.IIssue) IArchimateDiagramModel(com.archimatetool.model.IArchimateDiagramModel)

Example 14 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class DuplicateElementCheckerTests method testGetIssues.

@Test
public void testGetIssues() {
    List<IArchimateElement> elements = new ArrayList<IArchimateElement>();
    IArchimateElement e1 = IArchimateFactory.eINSTANCE.createBusinessActor();
    e1.setName("fido1");
    elements.add(e1);
    IArchimateElement e2 = IArchimateFactory.eINSTANCE.createBusinessActor();
    e2.setName("fido2");
    elements.add(e2);
    DuplicateElementChecker checker = new DuplicateElementChecker(elements);
    // Should be OK
    List<IIssue> issues = checker.getIssues();
    assertTrue(issues.isEmpty());
    // Set name the same
    e2.setName("fido1");
    issues = checker.getIssues();
    assertEquals(2, issues.size());
    assertTrue(issues.get(0) instanceof WarningType);
    assertTrue(issues.get(1) instanceof WarningType);
    assertSame(e1, issues.get(0).getObject());
    assertSame(e2, issues.get(1).getObject());
}
Also used : ArrayList(java.util.ArrayList) WarningType(com.archimatetool.hammer.validation.issues.WarningType) IArchimateElement(com.archimatetool.model.IArchimateElement) IIssue(com.archimatetool.hammer.validation.issues.IIssue) Test(org.junit.Test)

Example 15 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class InvalidRelationsCheckerTests method testGetIssues.

@Test
public void testGetIssues() {
    List<IArchimateRelationship> relations = new ArrayList<IArchimateRelationship>();
    IArchimateRelationship relation = IArchimateFactory.eINSTANCE.createAssignmentRelationship();
    relation.setName("relation");
    relation.setSource(IArchimateFactory.eINSTANCE.createBusinessActor());
    relation.setTarget(IArchimateFactory.eINSTANCE.createBusinessRole());
    relations.add(relation);
    InvalidRelationsChecker checker = new InvalidRelationsChecker(relations);
    // Should be ok
    List<IIssue> issues = checker.getIssues();
    assertEquals(0, issues.size());
    // Now set bogus relationship
    relation.setTarget(IArchimateFactory.eINSTANCE.createNode());
    issues = checker.getIssues();
    assertEquals(1, issues.size());
    assertTrue(issues.get(0) instanceof ErrorType);
    assertSame(relation, issues.get(0).getObject());
}
Also used : ErrorType(com.archimatetool.hammer.validation.issues.ErrorType) ArrayList(java.util.ArrayList) IArchimateRelationship(com.archimatetool.model.IArchimateRelationship) IIssue(com.archimatetool.hammer.validation.issues.IIssue) Test(org.junit.Test)

Aggregations

IIssue (com.archimatetool.hammer.validation.issues.IIssue)17 ArrayList (java.util.ArrayList)17 IArchimateElement (com.archimatetool.model.IArchimateElement)8 Test (org.junit.Test)8 IArchimateRelationship (com.archimatetool.model.IArchimateRelationship)7 IArchimateDiagramModel (com.archimatetool.model.IArchimateDiagramModel)6 IDiagramModelArchimateObject (com.archimatetool.model.IDiagramModelArchimateObject)6 WarningType (com.archimatetool.hammer.validation.issues.WarningType)4 AdviceType (com.archimatetool.hammer.validation.issues.AdviceType)3 ErrorType (com.archimatetool.hammer.validation.issues.ErrorType)3 IArchimateModel (com.archimatetool.model.IArchimateModel)2 IDiagramModelArchimateConnection (com.archimatetool.model.IDiagramModelArchimateConnection)2 ArchimateTestModel (com.archimatetool.testingtools.ArchimateTestModel)2 EObject (org.eclipse.emf.ecore.EObject)2 IArchimateDiagramEditor (com.archimatetool.editor.diagram.IArchimateDiagramEditor)1 IDiagramModelEditor (com.archimatetool.editor.diagram.IDiagramModelEditor)1 ITreeModelView (com.archimatetool.editor.views.tree.ITreeModelView)1 IArchimateConcept (com.archimatetool.model.IArchimateConcept)1 IDiagramModel (com.archimatetool.model.IDiagramModel)1 IDiagramModelComponent (com.archimatetool.model.IDiagramModelComponent)1