Search in sources :

Example 46 with NamedValue

use of org.osate.aadl2.NamedValue 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 NamedValue

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

the class Issue2265Test method testInstantiation.

@Test
public void testInstantiation() throws Exception {
    AadlPackage pkg = testHelper.parseFile(FILE);
    Optional<Classifier> impl = pkg.getOwnedPublicSection().getOwnedClassifiers().stream().filter(c -> c.getName().equals("top.i")).findFirst();
    SystemInstance instance = InstantiateModel.instantiate((ComponentImplementation) impl.get());
    Assert.assertEquals("top_i_Instance", instance.getName());
    ComponentInstance a = instance.getComponentInstances().get(0);
    Assert.assertEquals("a", a.getName());
    PropertyExpression pe = a.getOwnedPropertyAssociations().get(0).getOwnedValues().get(0).getOwnedValue();
    Assert.assertEquals(1, ((ListValue) pe).getOwnedListElements().size());
    pe = ((ListValue) pe).getOwnedListElements().get(0);
    AbstractNamedValue nv = ((NamedValue) pe).getNamedValue();
    Assert.assertEquals("Ada95", ((EnumerationLiteral) nv).getName());
    ConnectionInstance conni = instance.getConnectionInstances().get(0);
    Assert.assertEquals("sub1.out1 -> sub2.in1", conni.getName());
    pe = conni.getOwnedPropertyAssociations().get(0).getOwnedValues().get(0).getOwnedValue();
    Assert.assertEquals(1, ((ListValue) pe).getOwnedListElements().size());
    pe = ((ListValue) pe).getOwnedListElements().get(0);
    InstanceObject io = ((InstanceReferenceValue) pe).getReferencedInstanceObject();
    Assert.assertEquals("theBus2", io.getName());
}
Also used : ComponentInstance(org.osate.aadl2.instance.ComponentInstance) SystemInstance(org.osate.aadl2.instance.SystemInstance) ListValue(org.osate.aadl2.ListValue) NamedValue(org.osate.aadl2.NamedValue) Aadl2InjectorProvider(org.osate.testsupport.Aadl2InjectorProvider) InstantiateModel(org.osate.aadl2.instantiation.InstantiateModel) Inject(com.google.inject.Inject) RunWith(org.junit.runner.RunWith) ComponentImplementation(org.osate.aadl2.ComponentImplementation) InstanceReferenceValue(org.osate.aadl2.instance.InstanceReferenceValue) Test(org.junit.Test) AadlPackage(org.osate.aadl2.AadlPackage) XtextRunner(org.eclipse.xtext.testing.XtextRunner) TestHelper(org.osate.testsupport.TestHelper) ConnectionInstance(org.osate.aadl2.instance.ConnectionInstance) AbstractNamedValue(org.osate.aadl2.AbstractNamedValue) XtextTest(com.itemis.xtext.testing.XtextTest) PropertyExpression(org.osate.aadl2.PropertyExpression) Classifier(org.osate.aadl2.Classifier) InjectWith(org.eclipse.xtext.testing.InjectWith) Optional(java.util.Optional) Assert(org.junit.Assert) EnumerationLiteral(org.osate.aadl2.EnumerationLiteral) InstanceObject(org.osate.aadl2.instance.InstanceObject) ConnectionInstance(org.osate.aadl2.instance.ConnectionInstance) AadlPackage(org.osate.aadl2.AadlPackage) ListValue(org.osate.aadl2.ListValue) AbstractNamedValue(org.osate.aadl2.AbstractNamedValue) NamedValue(org.osate.aadl2.NamedValue) AbstractNamedValue(org.osate.aadl2.AbstractNamedValue) Classifier(org.osate.aadl2.Classifier) InstanceObject(org.osate.aadl2.instance.InstanceObject) SystemInstance(org.osate.aadl2.instance.SystemInstance) ComponentInstance(org.osate.aadl2.instance.ComponentInstance) PropertyExpression(org.osate.aadl2.PropertyExpression) InstanceReferenceValue(org.osate.aadl2.instance.InstanceReferenceValue) Test(org.junit.Test) XtextTest(com.itemis.xtext.testing.XtextTest)

Example 48 with NamedValue

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

the class GetProperties method getRequiredConnectionQualityOfService.

public static List<EnumerationLiteral> getRequiredConnectionQualityOfService(NamedElement ne) {
    try {
        List<EnumerationLiteral> res = new ArrayList<>();
        Property requiredConnQos = lookupPropertyDefinition(ne, DeploymentProperties._NAME, DeploymentProperties.REQUIRED_CONNECTION_QUALITY_OF_SERVICE);
        List<? extends PropertyExpression> propertyValues = ne.getPropertyValueList(requiredConnQos);
        for (PropertyExpression propertyExpression : propertyValues) {
            res.add((EnumerationLiteral) ((NamedValue) propertyExpression).getNamedValue());
        }
        return res;
    } catch (PropertyLookupException e) {
        return Collections.emptyList();
    }
}
Also used : ArrayList(java.util.ArrayList) PropertyExpression(org.osate.aadl2.PropertyExpression) NamedValue(org.osate.aadl2.NamedValue) EnumerationLiteral(org.osate.aadl2.EnumerationLiteral) BasicProperty(org.osate.aadl2.BasicProperty) Property(org.osate.aadl2.Property) PropertyLookupException(org.osate.aadl2.properties.PropertyLookupException)

Example 49 with NamedValue

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

the class PropertiesValidator method checkPropertyReferenceAppliesTo.

@Check
public void checkPropertyReferenceAppliesTo(NamedValue namedValue) {
    AbstractNamedValue anv = namedValue.getNamedValue();
    PropertyAssociation association = EcoreUtil2.getContainerOfType(namedValue, PropertyAssociation.class);
    if (!anv.eIsProxy() && anv instanceof Property && association != null) {
        Property referencedProperty = (Property) anv;
        List<ContainedNamedElement> appliesTo = association.getAppliesTos();
        if (appliesTo.isEmpty()) {
            NamedElement holder = EcoreUtil2.getContainerOfType(association, NamedElement.class);
            if (holder != null && !holder.acceptsProperty(referencedProperty)) {
                error("Property " + referencedProperty.getQualifiedName() + " does not apply to " + holder.getName());
            }
        } else {
            for (ContainedNamedElement cna : appliesTo) {
                List<ContainmentPathElement> path = cna.getContainmentPathElements();
                if (!path.isEmpty()) {
                    NamedElement holder = path.get(path.size() - 1).getNamedElement();
                    if (!holder.eIsProxy() && !holder.acceptsProperty(referencedProperty)) {
                        error("Property " + referencedProperty.getQualifiedName() + " does not apply to " + unparseAppliesTo(cna));
                    }
                }
            }
        }
    }
}
Also used : PropertyAssociation(org.osate.aadl2.PropertyAssociation) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation) ContainmentPathElement(org.osate.aadl2.ContainmentPathElement) AbstractNamedValue(org.osate.aadl2.AbstractNamedValue) ContainedNamedElement(org.osate.aadl2.ContainedNamedElement) ArraySizeProperty(org.osate.aadl2.ArraySizeProperty) Property(org.osate.aadl2.Property) ContainedNamedElement(org.osate.aadl2.ContainedNamedElement) NamedElement(org.osate.aadl2.NamedElement) Check(org.eclipse.xtext.validation.Check)

Example 50 with NamedValue

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

the class Aadl2LabelProvider method text.

String text(NamedValue ele) {
    String ret;
    ret = "unknown value";
    if (ele.getNamedValue() instanceof EnumerationLiteral) {
        EnumerationLiteral el;
        el = (EnumerationLiteral) ele.getNamedValue();
        ret = el.getName();
    }
    return ret;
}
Also used : EnumerationLiteral(org.osate.aadl2.EnumerationLiteral)

Aggregations

NamedValue (org.osate.aadl2.NamedValue)41 EnumerationLiteral (org.osate.aadl2.EnumerationLiteral)29 Property (org.osate.aadl2.Property)27 PropertyExpression (org.osate.aadl2.PropertyExpression)24 AbstractNamedValue (org.osate.aadl2.AbstractNamedValue)20 PropertyAssociation (org.osate.aadl2.PropertyAssociation)18 BasicPropertyAssociation (org.osate.aadl2.BasicPropertyAssociation)15 ContainmentPathElement (org.osate.aadl2.ContainmentPathElement)15 ListValue (org.osate.aadl2.ListValue)15 StringLiteral (org.osate.aadl2.StringLiteral)15 BasicProperty (org.osate.aadl2.BasicProperty)13 ContainedNamedElement (org.osate.aadl2.ContainedNamedElement)13 IntegerLiteral (org.osate.aadl2.IntegerLiteral)12 BooleanLiteral (org.osate.aadl2.BooleanLiteral)11 ClassifierValue (org.osate.aadl2.ClassifierValue)11 ModalPropertyValue (org.osate.aadl2.ModalPropertyValue)11 NamedElement (org.osate.aadl2.NamedElement)11 RangeValue (org.osate.aadl2.RangeValue)11 RealLiteral (org.osate.aadl2.RealLiteral)11 RecordValue (org.osate.aadl2.RecordValue)11