Search in sources :

Example 1 with BehaviorVariableHolder

use of org.osate.ba.aadlba.BehaviorVariableHolder in project osate2 by osate.

the class AadlBaLegalityRulesChecker method D_6_L3_And_L4_Check.

/**
 * Document: AADL Behavior Annex draft
 * Version : 0.94
 * Type    : Legality rule
 * Section : D.6 Behavior Action Language
 * Object  : Check legality rules D.6.(L3), D.6.(L4)
 * Keys    : local variable port variable assigned action set
 */
public boolean D_6_L3_And_L4_Check(BehaviorActionBlock bab) {
    BehaviorActions beActions = bab.getContent();
    // Temporary list of targets passed between recursive calls of
    // buildActionSetAssignedValuesLists method.
    List<Target> lActionSetTar = new ArrayList<Target>();
    // Set of duplicated targets between multiple action sets.
    Set<Target> lDuplicates = new HashSet<Target>();
    buildActionSetAssignedTargetLists(beActions, lActionSetTar, lDuplicates);
    String localVariableErrorMsg = "The same local variable must not be " + "assigned to in different actions of an action set" + ": Behavior Annex D.6.(L3) legality rules failed";
    String portErrorMsg = "The same port variable must not be assigned to " + "in different actions of an action set: " + "Behavior Annex D.6.(L4) legality rules failed";
    String tmp;
    for (Target tar : lDuplicates) {
        // Local variable case.
        if (tar instanceof BehaviorVariableHolder) {
            tmp = localVariableErrorMsg;
        } else // Port case.
        {
            tmp = portErrorMsg;
        }
        reportLegalityError(tar, tmp);
    }
    return lDuplicates.isEmpty();
}
Also used : Target(org.osate.ba.aadlba.Target) ArrayList(java.util.ArrayList) BehaviorActions(org.osate.ba.aadlba.BehaviorActions) BehaviorVariableHolder(org.osate.ba.aadlba.BehaviorVariableHolder) HashSet(java.util.HashSet)

Example 2 with BehaviorVariableHolder

use of org.osate.ba.aadlba.BehaviorVariableHolder in project osate2 by osate.

the class AadlBaParserVisitor method cloneHolder.

private ElementHolder cloneHolder(ElementHolder sourceElementHolder) {
    ElementHolder targetElementHolder = null;
    if (sourceElementHolder instanceof ClassifierFeatureHolder) {
        ClassifierFeatureHolder sourceCfh = (ClassifierFeatureHolder) sourceElementHolder;
        if (sourceElementHolder instanceof BehaviorVariableHolder) {
            // BehaviorVariableHolder
            targetElementHolder = _baFact.createBehaviorVariableHolder();
        } else if (sourceElementHolder instanceof FeatureHolder) {
            FeatureHolder sourceFeatureHolder = (FeatureHolder) sourceElementHolder;
            // FeatureHolder
            if (sourceFeatureHolder instanceof DataAccessHolder) {
                // DataAccessHolder
                targetElementHolder = _baFact.createDataAccessHolder();
            } else if (sourceFeatureHolder instanceof ParameterHolder) {
                // ParameterHolder
                targetElementHolder = _baFact.createParameterHolder();
            } else if (sourceFeatureHolder instanceof DataPortHolder) {
                targetElementHolder = _baFact.createDataPortHolder();
            } else if (sourceFeatureHolder instanceof EventDataPortHolder) {
                targetElementHolder = _baFact.createEventDataPortHolder();
            } else if (sourceFeatureHolder instanceof EventPortHolder) {
                targetElementHolder = _baFact.createEventPortHolder();
            } else if (sourceFeatureHolder instanceof SubprogramAccessHolder) {
                targetElementHolder = _baFact.createSubprogramAccessHolder();
            }
        } else // PrototypeHolder
        if (sourceElementHolder instanceof PrototypeHolder) {
            // DataAccessPrototypeHolder
            if (sourceElementHolder instanceof DataAccessPrototypeHolder) {
                targetElementHolder = _baFact.createDataAccessPrototypeHolder();
            } else if (sourceElementHolder instanceof FeaturePrototypeHolder) {
                targetElementHolder = _baFact.createFeaturePrototypeHolder();
            } else if (sourceElementHolder instanceof PortPrototypeHolder) {
                targetElementHolder = _baFact.createPortPrototypeHolder();
            } else if (sourceElementHolder instanceof SubprogramPrototypeHolder) {
                targetElementHolder = _baFact.createSubprogramPrototypeHolder();
            }
        } else // SubcomponentHolder
        if (sourceElementHolder instanceof SubcomponentHolder) {
            // DataSubcomponentHolder
            if (sourceElementHolder instanceof DataSubcomponentHolder) {
                targetElementHolder = _baFact.createDataSubcomponentHolder();
            } else if (sourceElementHolder instanceof SubprogramSubcomponentHolder) {
                targetElementHolder = _baFact.createSubprogramSubcomponentHolder();
            }
        }
        ClassifierFeatureHolder targetCfh = (ClassifierFeatureHolder) targetElementHolder;
        targetCfh.setClassifierFeature(sourceCfh.getClassifierFeature());
    }
    if (targetElementHolder != null) {
        targetElementHolder.setElement(sourceElementHolder.getElement());
    }
    return targetElementHolder;
}
Also used : DataAccessHolder(org.osate.ba.aadlba.DataAccessHolder) PortPrototypeHolder(org.osate.ba.aadlba.PortPrototypeHolder) ClassifierFeatureHolder(org.osate.ba.aadlba.ClassifierFeatureHolder) FeatureHolder(org.osate.ba.aadlba.FeatureHolder) FeaturePrototypeHolder(org.osate.ba.aadlba.FeaturePrototypeHolder) SubprogramSubcomponentHolder(org.osate.ba.aadlba.SubprogramSubcomponentHolder) ElementHolder(org.osate.ba.aadlba.ElementHolder) PropertyElementHolder(org.osate.ba.aadlba.PropertyElementHolder) ClassifierFeatureHolder(org.osate.ba.aadlba.ClassifierFeatureHolder) BehaviorVariableHolder(org.osate.ba.aadlba.BehaviorVariableHolder) EventPortHolder(org.osate.ba.aadlba.EventPortHolder) SubcomponentHolder(org.osate.ba.aadlba.SubcomponentHolder) DataSubcomponentHolder(org.osate.ba.aadlba.DataSubcomponentHolder) SubprogramSubcomponentHolder(org.osate.ba.aadlba.SubprogramSubcomponentHolder) EventDataPortHolder(org.osate.ba.aadlba.EventDataPortHolder) DataPortHolder(org.osate.ba.aadlba.DataPortHolder) DataSubcomponentHolder(org.osate.ba.aadlba.DataSubcomponentHolder) EventDataPortHolder(org.osate.ba.aadlba.EventDataPortHolder) DataAccessPrototypeHolder(org.osate.ba.aadlba.DataAccessPrototypeHolder) ParameterHolder(org.osate.ba.aadlba.ParameterHolder) SubprogramAccessHolder(org.osate.ba.aadlba.SubprogramAccessHolder) PrototypeHolder(org.osate.ba.aadlba.PrototypeHolder) PortPrototypeHolder(org.osate.ba.aadlba.PortPrototypeHolder) SubprogramPrototypeHolder(org.osate.ba.aadlba.SubprogramPrototypeHolder) DataAccessPrototypeHolder(org.osate.ba.aadlba.DataAccessPrototypeHolder) FeaturePrototypeHolder(org.osate.ba.aadlba.FeaturePrototypeHolder) SubprogramPrototypeHolder(org.osate.ba.aadlba.SubprogramPrototypeHolder)

Aggregations

BehaviorVariableHolder (org.osate.ba.aadlba.BehaviorVariableHolder)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 BehaviorActions (org.osate.ba.aadlba.BehaviorActions)1 ClassifierFeatureHolder (org.osate.ba.aadlba.ClassifierFeatureHolder)1 DataAccessHolder (org.osate.ba.aadlba.DataAccessHolder)1 DataAccessPrototypeHolder (org.osate.ba.aadlba.DataAccessPrototypeHolder)1 DataPortHolder (org.osate.ba.aadlba.DataPortHolder)1 DataSubcomponentHolder (org.osate.ba.aadlba.DataSubcomponentHolder)1 ElementHolder (org.osate.ba.aadlba.ElementHolder)1 EventDataPortHolder (org.osate.ba.aadlba.EventDataPortHolder)1 EventPortHolder (org.osate.ba.aadlba.EventPortHolder)1 FeatureHolder (org.osate.ba.aadlba.FeatureHolder)1 FeaturePrototypeHolder (org.osate.ba.aadlba.FeaturePrototypeHolder)1 ParameterHolder (org.osate.ba.aadlba.ParameterHolder)1 PortPrototypeHolder (org.osate.ba.aadlba.PortPrototypeHolder)1 PropertyElementHolder (org.osate.ba.aadlba.PropertyElementHolder)1 PrototypeHolder (org.osate.ba.aadlba.PrototypeHolder)1 SubcomponentHolder (org.osate.ba.aadlba.SubcomponentHolder)1 SubprogramAccessHolder (org.osate.ba.aadlba.SubprogramAccessHolder)1