Search in sources :

Example 1 with IIssueCategory

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

the class Validator method validate.

/**
 * @return The list of Issue Categories and Issues
 */
public List<Object> validate() {
    if (fModel == null) {
        return null;
    }
    // Collect interesting objects
    fElements = new ArrayList<IArchimateElement>();
    fRelations = new ArrayList<IArchimateRelationship>();
    fViews = new ArrayList<IArchimateDiagramModel>();
    for (Iterator<EObject> iter = fModel.eAllContents(); iter.hasNext(); ) {
        EObject eObject = iter.next();
        if (eObject instanceof IArchimateRelationship) {
            fRelations.add((IArchimateRelationship) eObject);
        } else if (eObject instanceof IArchimateElement) {
            fElements.add((IArchimateElement) eObject);
        } else if (eObject instanceof IArchimateDiagramModel) {
            fViews.add((IArchimateDiagramModel) eObject);
        }
    }
    // Analyse
    List<Object> result = new ArrayList<Object>();
    fErrorList = new ArrayList<ErrorType>();
    fWarningList = new ArrayList<WarningType>();
    fAdviceList = new ArrayList<AdviceType>();
    // ------------------ Checkers -----------------------------
    IPreferenceStore store = ArchiHammerPlugin.INSTANCE.getPreferenceStore();
    // Invalid Relations
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_INVALID_RELATIONS)) {
        collectIssues(new InvalidRelationsChecker(getArchimateRelationships()));
    }
    // Unused Elements
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_UNUSED_ELEMENTS)) {
        collectIssues(new UnusedElementsChecker(getArchimateElements()));
    }
    // Unused Relations
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_UNUSED_RELATIONS)) {
        collectIssues(new UnusedRelationsChecker(getArchimateRelationships()));
    }
    // Empty Views
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_EMPTY_VIEWS)) {
        collectIssues(new EmptyViewsChecker(getArchimateViews()));
    }
    // Components in wrong Viewpoints
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_VIEWPOINT)) {
        collectIssues(new ViewpointChecker(getArchimateViews()));
    }
    // Nested elements
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_NESTING)) {
        collectIssues(new NestedElementsChecker(getArchimateViews()));
    }
    // Possible Duplicates
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_DUPLICATE_ELEMENTS)) {
        collectIssues(new DuplicateElementChecker(getArchimateElements()));
    }
    // Junctions
    if (store.getBoolean(IPreferenceConstants.PREFS_HAMMER_CHECK_JUNCTIONS)) {
        collectIssues(new JunctionsChecker(getArchimateElements()));
    }
    if (!fErrorList.isEmpty()) {
        IIssueCategory category = new ErrorsCategory(fErrorList);
        result.add(category);
    }
    if (!fWarningList.isEmpty()) {
        IIssueCategory category = new WarningsCategory(fWarningList);
        result.add(category);
    }
    if (!fAdviceList.isEmpty()) {
        IIssueCategory category = new AdviceCategory(fAdviceList);
        result.add(category);
    }
    if (result.isEmpty()) {
        result.add(new OKType());
    }
    return result;
}
Also used : UnusedElementsChecker(com.archimatetool.hammer.validation.checkers.UnusedElementsChecker) EmptyViewsChecker(com.archimatetool.hammer.validation.checkers.EmptyViewsChecker) AdviceCategory(com.archimatetool.hammer.validation.issues.AdviceCategory) ArrayList(java.util.ArrayList) DuplicateElementChecker(com.archimatetool.hammer.validation.checkers.DuplicateElementChecker) ErrorType(com.archimatetool.hammer.validation.issues.ErrorType) EObject(org.eclipse.emf.ecore.EObject) IArchimateElement(com.archimatetool.model.IArchimateElement) IArchimateRelationship(com.archimatetool.model.IArchimateRelationship) ViewpointChecker(com.archimatetool.hammer.validation.checkers.ViewpointChecker) WarningsCategory(com.archimatetool.hammer.validation.issues.WarningsCategory) ErrorsCategory(com.archimatetool.hammer.validation.issues.ErrorsCategory) InvalidRelationsChecker(com.archimatetool.hammer.validation.checkers.InvalidRelationsChecker) IArchimateDiagramModel(com.archimatetool.model.IArchimateDiagramModel) UnusedRelationsChecker(com.archimatetool.hammer.validation.checkers.UnusedRelationsChecker) OKType(com.archimatetool.hammer.validation.issues.OKType) JunctionsChecker(com.archimatetool.hammer.validation.checkers.JunctionsChecker) WarningType(com.archimatetool.hammer.validation.issues.WarningType) NestedElementsChecker(com.archimatetool.hammer.validation.checkers.NestedElementsChecker) AdviceType(com.archimatetool.hammer.validation.issues.AdviceType) EObject(org.eclipse.emf.ecore.EObject) IPreferenceStore(org.eclipse.jface.preference.IPreferenceStore) IIssueCategory(com.archimatetool.hammer.validation.issues.IIssueCategory)

Aggregations

DuplicateElementChecker (com.archimatetool.hammer.validation.checkers.DuplicateElementChecker)1 EmptyViewsChecker (com.archimatetool.hammer.validation.checkers.EmptyViewsChecker)1 InvalidRelationsChecker (com.archimatetool.hammer.validation.checkers.InvalidRelationsChecker)1 JunctionsChecker (com.archimatetool.hammer.validation.checkers.JunctionsChecker)1 NestedElementsChecker (com.archimatetool.hammer.validation.checkers.NestedElementsChecker)1 UnusedElementsChecker (com.archimatetool.hammer.validation.checkers.UnusedElementsChecker)1 UnusedRelationsChecker (com.archimatetool.hammer.validation.checkers.UnusedRelationsChecker)1 ViewpointChecker (com.archimatetool.hammer.validation.checkers.ViewpointChecker)1 AdviceCategory (com.archimatetool.hammer.validation.issues.AdviceCategory)1 AdviceType (com.archimatetool.hammer.validation.issues.AdviceType)1 ErrorType (com.archimatetool.hammer.validation.issues.ErrorType)1 ErrorsCategory (com.archimatetool.hammer.validation.issues.ErrorsCategory)1 IIssueCategory (com.archimatetool.hammer.validation.issues.IIssueCategory)1 OKType (com.archimatetool.hammer.validation.issues.OKType)1 WarningType (com.archimatetool.hammer.validation.issues.WarningType)1 WarningsCategory (com.archimatetool.hammer.validation.issues.WarningsCategory)1 IArchimateDiagramModel (com.archimatetool.model.IArchimateDiagramModel)1 IArchimateElement (com.archimatetool.model.IArchimateElement)1 IArchimateRelationship (com.archimatetool.model.IArchimateRelationship)1 ArrayList (java.util.ArrayList)1