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;
}
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;
}
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;
}
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());
}
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());
}
Aggregations