Search in sources :

Example 46 with RecordValue

use of org.osate.aadl2.RecordValue in project osate2 by osate.

the class AbstractInstanceSemanticSequencer method sequence.

@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
    EPackage epackage = semanticObject.eClass().getEPackage();
    ParserRule rule = context.getParserRule();
    Action action = context.getAssignedAction();
    Set<Parameter> parameters = context.getEnabledBooleanParameters();
    if (epackage == Aadl2Package.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case Aadl2Package.ARRAY_RANGE:
                sequence_ArrayRange(context, (ArrayRange) semanticObject);
                return;
            case Aadl2Package.BASIC_PROPERTY_ASSOCIATION:
                sequence_FieldPropertyAssociation(context, (BasicPropertyAssociation) semanticObject);
                return;
            case Aadl2Package.BOOLEAN_LITERAL:
                sequence_BooleanLiteral(context, (BooleanLiteral) semanticObject);
                return;
            case Aadl2Package.CLASSIFIER_VALUE:
                sequence_ComponentClassifierTerm(context, (ClassifierValue) semanticObject);
                return;
            case Aadl2Package.COMPUTED_VALUE:
                sequence_ComputedTerm(context, (ComputedValue) semanticObject);
                return;
            case Aadl2Package.CONTAINED_NAMED_ELEMENT:
                sequence_ContainmentPath(context, (ContainedNamedElement) semanticObject);
                return;
            case Aadl2Package.CONTAINMENT_PATH_ELEMENT:
                sequence_ContainmentPathElement(context, (ContainmentPathElement) semanticObject);
                return;
            case Aadl2Package.INTEGER_LITERAL:
                sequence_IntegerTerm(context, (IntegerLiteral) semanticObject);
                return;
            case Aadl2Package.LIST_VALUE:
                sequence_ListTerm(context, (ListValue) semanticObject);
                return;
            case Aadl2Package.MODAL_PROPERTY_VALUE:
                if (rule == grammarAccess.getModalPropertyValueRule()) {
                    sequence_ModalPropertyValue(context, (ModalPropertyValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getOptionalModalPropertyValueRule()) {
                    sequence_OptionalModalPropertyValue(context, (ModalPropertyValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyValueRule()) {
                    sequence_PropertyValue(context, (ModalPropertyValue) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.NAMED_VALUE:
                if (rule == grammarAccess.getConstantValueRule() || rule == grammarAccess.getNumAltRule()) {
                    sequence_ConstantValue(context, (NamedValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyExpressionRule() || rule == grammarAccess.getLiteralorReferenceTermRule()) {
                    sequence_LiteralorReferenceTerm(context, (NamedValue) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.OPERATION:
                sequence_SignedConstant(context, (Operation) semanticObject);
                return;
            case Aadl2Package.PROPERTY_ASSOCIATION:
                if (rule == grammarAccess.getBasicPropertyAssociationRule()) {
                    sequence_BasicPropertyAssociation(context, (PropertyAssociation) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPModelRule() || rule == grammarAccess.getContainedPropertyAssociationRule()) {
                    sequence_ContainedPropertyAssociation(context, (PropertyAssociation) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyAssociationRule()) {
                    sequence_PropertyAssociation(context, (PropertyAssociation) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.RANGE_VALUE:
                sequence_NumericRangeTerm(context, (RangeValue) semanticObject);
                return;
            case Aadl2Package.REAL_LITERAL:
                sequence_RealTerm(context, (RealLiteral) semanticObject);
                return;
            case Aadl2Package.RECORD_VALUE:
                if (rule == grammarAccess.getOldRecordTermRule()) {
                    sequence_OldRecordTerm(context, (RecordValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyExpressionRule() || rule == grammarAccess.getRecordTermRule()) {
                    sequence_RecordTerm(context, (RecordValue) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.REFERENCE_VALUE:
                sequence_ReferenceTerm(context, (ReferenceValue) semanticObject);
                return;
            case Aadl2Package.STRING_LITERAL:
                sequence_StringTerm(context, (StringLiteral) semanticObject);
                return;
        }
    else if (epackage == InstancePackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case InstancePackage.COMPONENT_INSTANCE:
                sequence_ComponentInstance(context, (ComponentInstance) semanticObject);
                return;
            case InstancePackage.CONNECTION_INSTANCE:
                sequence_ConnectionInstance(context, (ConnectionInstance) semanticObject);
                return;
            case InstancePackage.CONNECTION_REFERENCE:
                sequence_ConnectionReference(context, (ConnectionReference) semanticObject);
                return;
            case InstancePackage.END_TO_END_FLOW_INSTANCE:
                sequence_EndToEndFlowInstance(context, (EndToEndFlowInstance) semanticObject);
                return;
            case InstancePackage.FEATURE_INSTANCE:
                sequence_FeatureInstance(context, (FeatureInstance) semanticObject);
                return;
            case InstancePackage.FLOW_SPECIFICATION_INSTANCE:
                sequence_FlowSpecificationInstance(context, (FlowSpecificationInstance) semanticObject);
                return;
            case InstancePackage.INSTANCE_REFERENCE_VALUE:
                sequence_InstanceReferenceValue(context, (InstanceReferenceValue) semanticObject);
                return;
            case InstancePackage.MODE_INSTANCE:
                sequence_ModeInstance(context, (ModeInstance) semanticObject);
                return;
            case InstancePackage.MODE_TRANSITION_INSTANCE:
                sequence_ModeTransitionInstance(context, (ModeTransitionInstance) semanticObject);
                return;
            case InstancePackage.PROPERTY_ASSOCIATION_INSTANCE:
                sequence_PropertyAssociationInstance(context, (PropertyAssociationInstance) semanticObject);
                return;
            case InstancePackage.SYSTEM_INSTANCE:
                sequence_SystemInstance(context, (SystemInstance) semanticObject);
                return;
            case InstancePackage.SYSTEM_OPERATION_MODE:
                sequence_SystemOperationMode(context, (SystemOperationMode) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) ComputedValue(org.osate.aadl2.ComputedValue) Action(org.eclipse.xtext.Action) ClassifierValue(org.osate.aadl2.ClassifierValue) ModalPropertyValue(org.osate.aadl2.ModalPropertyValue) BooleanLiteral(org.osate.aadl2.BooleanLiteral) PropertyAssociation(org.osate.aadl2.PropertyAssociation) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation) InstanceReferenceValue(org.osate.aadl2.instance.InstanceReferenceValue) ReferenceValue(org.osate.aadl2.ReferenceValue) ListValue(org.osate.aadl2.ListValue) ContainmentPathElement(org.osate.aadl2.ContainmentPathElement) RecordValue(org.osate.aadl2.RecordValue) ArrayRange(org.osate.aadl2.ArrayRange) NamedValue(org.osate.aadl2.NamedValue) Operation(org.osate.aadl2.Operation) RangeValue(org.osate.aadl2.RangeValue) EPackage(org.eclipse.emf.ecore.EPackage) RealLiteral(org.osate.aadl2.RealLiteral) StringLiteral(org.osate.aadl2.StringLiteral) Parameter(org.eclipse.xtext.Parameter) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation) ContainedNamedElement(org.osate.aadl2.ContainedNamedElement) IntegerLiteral(org.osate.aadl2.IntegerLiteral)

Example 47 with RecordValue

use of org.osate.aadl2.RecordValue in project osate2 by osate.

the class HmErrorIdActionType method toPropertyExpression.

@Override
public RecordValue toPropertyExpression(ResourceSet resourceSet) {
    if (!erroridentifier.isPresent() && !description.isPresent() && !action.isPresent()) {
        throw new IllegalStateException("Record must have at least one field set.");
    }
    RecordValue recordValue = Aadl2Factory.eINSTANCE.createRecordValue();
    erroridentifier.ifPresent(field -> {
        BasicPropertyAssociation fieldAssociation = recordValue.createOwnedFieldValue();
        fieldAssociation.setProperty(loadField(resourceSet, ERRORIDENTIFIER__URI, ERRORIDENTIFIER__NAME));
        fieldAssociation.setOwnedValue(CodeGenUtil.toPropertyExpression(field));
    });
    description.ifPresent(field -> {
        BasicPropertyAssociation fieldAssociation = recordValue.createOwnedFieldValue();
        fieldAssociation.setProperty(loadField(resourceSet, DESCRIPTION__URI, DESCRIPTION__NAME));
        fieldAssociation.setOwnedValue(CodeGenUtil.toPropertyExpression(field));
    });
    action.ifPresent(field -> {
        BasicPropertyAssociation fieldAssociation = recordValue.createOwnedFieldValue();
        fieldAssociation.setProperty(loadField(resourceSet, ACTION__URI, ACTION__NAME));
        fieldAssociation.setOwnedValue(CodeGenUtil.toPropertyExpression(field));
    });
    return recordValue;
}
Also used : RecordValue(org.osate.aadl2.RecordValue) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation)

Example 48 with RecordValue

use of org.osate.aadl2.RecordValue in project osate2 by osate.

the class StateInformationType method toPropertyExpression.

@Override
public RecordValue toPropertyExpression(ResourceSet resourceSet) {
    if (!identifier.isPresent() && !description.isPresent()) {
        throw new IllegalStateException("Record must have at least one field set.");
    }
    RecordValue recordValue = Aadl2Factory.eINSTANCE.createRecordValue();
    identifier.ifPresent(field -> {
        BasicPropertyAssociation fieldAssociation = recordValue.createOwnedFieldValue();
        fieldAssociation.setProperty(loadField(resourceSet, IDENTIFIER__URI, IDENTIFIER__NAME));
        fieldAssociation.setOwnedValue(CodeGenUtil.toPropertyExpression(field));
    });
    description.ifPresent(field -> {
        BasicPropertyAssociation fieldAssociation = recordValue.createOwnedFieldValue();
        fieldAssociation.setProperty(loadField(resourceSet, DESCRIPTION__URI, DESCRIPTION__NAME));
        fieldAssociation.setOwnedValue(CodeGenUtil.toPropertyExpression(field));
    });
    return recordValue;
}
Also used : RecordValue(org.osate.aadl2.RecordValue) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation)

Example 49 with RecordValue

use of org.osate.aadl2.RecordValue in project osate2 by osate.

the class GetProperties method getValueRange.

public static RangeValue getValueRange(final RecordValue ne) {
    EList<BasicPropertyAssociation> fields = ne.getOwnedFieldValues();
    BasicPropertyAssociation valueRange = getRecordField(fields, "Value_Range");
    return valueRange != null ? (RangeValue) valueRange.getValue() : null;
}
Also used : BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation)

Example 50 with RecordValue

use of org.osate.aadl2.RecordValue in project osate2 by osate.

the class GetProperties method getMinDataRate.

public static double getMinDataRate(RecordValue rate) {
    BasicPropertyAssociation vr = GetProperties.getRecordField(rate.getOwnedFieldValues(), "Value_Range");
    if (vr == null) {
        return 0;
    }
    RangeValue rv = (RangeValue) vr.getOwnedValue();
    PropertyExpression minimum = rv.getMinimum().evaluate(null, 0).first().getValue();
    return ((NumberValue) minimum).getScaledValue();
}
Also used : NumberValue(org.osate.aadl2.NumberValue) PropertyExpression(org.osate.aadl2.PropertyExpression) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation) RangeValue(org.osate.aadl2.RangeValue)

Aggregations

RecordValue (org.osate.aadl2.RecordValue)46 BasicPropertyAssociation (org.osate.aadl2.BasicPropertyAssociation)37 ListValue (org.osate.aadl2.ListValue)22 PropertyExpression (org.osate.aadl2.PropertyExpression)20 RangeValue (org.osate.aadl2.RangeValue)19 ClassifierValue (org.osate.aadl2.ClassifierValue)13 IntegerLiteral (org.osate.aadl2.IntegerLiteral)13 StringLiteral (org.osate.aadl2.StringLiteral)13 RealLiteral (org.osate.aadl2.RealLiteral)12 ContainmentPathElement (org.osate.aadl2.ContainmentPathElement)11 NamedValue (org.osate.aadl2.NamedValue)11 BooleanLiteral (org.osate.aadl2.BooleanLiteral)10 ReferenceValue (org.osate.aadl2.ReferenceValue)10 ComputedValue (org.osate.aadl2.ComputedValue)8 ContainedNamedElement (org.osate.aadl2.ContainedNamedElement)8 ModalPropertyValue (org.osate.aadl2.ModalPropertyValue)8 NamedElement (org.osate.aadl2.NamedElement)8 PropertyAssociation (org.osate.aadl2.PropertyAssociation)8 ArrayRange (org.osate.aadl2.ArrayRange)7 Operation (org.osate.aadl2.Operation)7