Search in sources :

Example 1 with ComponentTypeImpl

use of org.osate.aadl2.impl.ComponentTypeImpl in project AMASE by loonwerks.

the class FaultDisableHandler method makeMap.

/**
 * Checks classifiers in AadlPackage for any ComponentTypeImpl
 * and then collects safety annex spec statements to gather
 * fault names specific to that component.
 *
 * @param classifiers Classifiers in this AadlPackage
 */
private void makeMap(List<Classifier> classifiers) {
    for (Classifier cl : classifiers) {
        if (cl instanceof ComponentTypeImpl) {
            String compName = cl.getName();
            List<String> faultNameList = new ArrayList<String>();
            List<AnnexSubclause> asList = cl.getOwnedAnnexSubclauses();
            for (AnnexSubclause as : asList) {
                if (as.getName().equalsIgnoreCase("safety")) {
                    if (as instanceof DefaultAnnexSubclauseImpl) {
                        DefaultAnnexSubclauseImpl defaultAnnex = (DefaultAnnexSubclauseImpl) as;
                        SafetyContractSubclauseImpl safetyAnnex = (SafetyContractSubclauseImpl) defaultAnnex.getParsedAnnexSubclause();
                        List<SpecStatement> specs = ((SafetyContract) safetyAnnex.getContract()).getSpecs();
                        for (SpecStatement spec : specs) {
                            if (spec instanceof FaultStatementImpl) {
                                FaultStatementImpl fs = (FaultStatementImpl) spec;
                                faultNameList.add(fs.getName());
                            }
                        }
                    }
                }
            }
            // If list nonempty, add to map for this component
            if (!faultNameList.isEmpty()) {
                mapCompNameToFaults.put(compName, faultNameList);
            }
        }
    }
}
Also used : SafetyContractSubclauseImpl(edu.umn.cs.crisys.safety.safety.impl.SafetyContractSubclauseImpl) DefaultAnnexSubclauseImpl(org.osate.aadl2.impl.DefaultAnnexSubclauseImpl) ArrayList(java.util.ArrayList) ComponentTypeImpl(org.osate.aadl2.impl.ComponentTypeImpl) SpecStatement(edu.umn.cs.crisys.safety.safety.SpecStatement) Classifier(org.osate.aadl2.Classifier) FaultStatementImpl(edu.umn.cs.crisys.safety.safety.impl.FaultStatementImpl) SafetyContract(edu.umn.cs.crisys.safety.safety.SafetyContract) AnnexSubclause(org.osate.aadl2.AnnexSubclause)

Aggregations

SafetyContract (edu.umn.cs.crisys.safety.safety.SafetyContract)1 SpecStatement (edu.umn.cs.crisys.safety.safety.SpecStatement)1 FaultStatementImpl (edu.umn.cs.crisys.safety.safety.impl.FaultStatementImpl)1 SafetyContractSubclauseImpl (edu.umn.cs.crisys.safety.safety.impl.SafetyContractSubclauseImpl)1 ArrayList (java.util.ArrayList)1 AnnexSubclause (org.osate.aadl2.AnnexSubclause)1 Classifier (org.osate.aadl2.Classifier)1 ComponentTypeImpl (org.osate.aadl2.impl.ComponentTypeImpl)1 DefaultAnnexSubclauseImpl (org.osate.aadl2.impl.DefaultAnnexSubclauseImpl)1