Search in sources :

Example 6 with PortSpecification

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

the class PortPrototypeHolderItemProvider method getImage.

/**
 * This returns PortPrototypeHolder.gif.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 */
@Override
public Object getImage(Object object) {
    String imgFile = BehaviorElementItemProvider.OSATE_IMG_PATH;
    DirectionType type = null;
    PrototypeHolder holder = (PrototypeHolder) object;
    FeaturePrototypeBinding fpb = (FeaturePrototypeBinding) holder.getPrototypeBinding();
    if (fpb != null) {
        type = ((PortSpecification) fpb.getActual()).getDirection();
    } else {
        type = DirectionType.IN;
    }
    switch(type) {
        default:
        case IN:
            {
                imgFile += "InDataPort";
                break;
            }
        case OUT:
            {
                imgFile += "OutDataPort";
                break;
            }
        case IN_OUT:
            {
                imgFile += "InOutDataPort";
                break;
            }
    }
    return overlayImage(object, getResourceLocator().getImage(imgFile));
}
Also used : DirectionType(org.osate.aadl2.DirectionType) FeaturePrototypeBinding(org.osate.aadl2.FeaturePrototypeBinding) PrototypeHolder(org.osate.ba.aadlba.PrototypeHolder)

Example 7 with PortSpecification

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

the class PortSpecificationItemProvider method getText.

/**
 * This returns the label text for the adapted class.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public String getText(Object object) {
    DirectionType labelValue = ((PortSpecification) object).getDirection();
    String label = labelValue == null ? null : labelValue.toString();
    return label == null || label.length() == 0 ? getString("_UI_PortSpecification_type") : getString("_UI_PortSpecification_type") + " " + label;
}
Also used : DirectionType(org.osate.aadl2.DirectionType) PortSpecification(org.osate.aadl2.PortSpecification)

Example 8 with PortSpecification

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

the class SubcomponentPrototypeBindingsModel method buildComparisonString.

/**
 * Builds a string that can be used to compare a list of prototype bindings
 * @param bindings for which to build a comparison string
 * @return is the comparison string that was built.
 */
private String buildComparisonString(final List<PrototypeBinding> bindings) {
    final StringBuilder sb = new StringBuilder();
    bindings.stream().sorted((b1, b2) -> getPrototypeName(b1).compareToIgnoreCase(getPrototypeName(b2))).forEachOrdered(b -> {
        sb.append(getPrototypeName(b));
        sb.append(':');
        if (b instanceof ComponentPrototypeBinding) {
            final ComponentPrototypeBinding cpb = (ComponentPrototypeBinding) b;
            cpb.getActuals().stream().forEachOrdered(a -> {
                sb.append(a.getCategory());
                sb.append(',');
                addQualfiedNameIfNamedElement(sb, a.getSubcomponentType());
                sb.append('(');
                sb.append(buildComparisonString(a.getBindings()));
                sb.append(')');
            });
        } else if (b instanceof FeatureGroupPrototypeBinding) {
            final FeatureGroupPrototypeBinding fgpb = (FeatureGroupPrototypeBinding) b;
            final FeatureGroupPrototypeActual a = fgpb.getActual();
            if (a != null) {
                addQualfiedNameIfNamedElement(sb, a.getFeatureType());
                sb.append('(');
                sb.append(buildComparisonString(a.getBindings()));
                sb.append(')');
            }
        } else if (b instanceof FeaturePrototypeBinding) {
            FeaturePrototypeBinding fpb = (FeaturePrototypeBinding) b;
            final FeaturePrototypeActual a = fpb.getActual();
            if (a instanceof AccessSpecification) {
                final AccessSpecification as = (AccessSpecification) a;
                sb.append(as.getCategory());
                sb.append(',');
                sb.append(as.getKind());
                sb.append(',');
                addQualfiedNameIfNamedElement(sb, as.getClassifier());
            } else if (a instanceof PortSpecification) {
                final PortSpecification ps = (PortSpecification) a;
                sb.append(ps.getCategory());
                sb.append(',');
                sb.append(ps.getDirection());
                sb.append(',');
                addQualfiedNameIfNamedElement(sb, ps.getClassifier());
            } else if (a instanceof FeaturePrototypeReference) {
                final FeaturePrototypeReference r = (FeaturePrototypeReference) a;
                sb.append(r.getDirection());
                sb.append(',');
                addQualfiedNameIfNamedElement(sb, r.getPrototype());
            }
        }
        sb.append(';');
    });
    return sb.toString();
}
Also used : SubcomponentType(org.osate.aadl2.SubcomponentType) ComponentPrototypeBinding(org.osate.aadl2.ComponentPrototypeBinding) FeaturePrototypeBinding(org.osate.aadl2.FeaturePrototypeBinding) AadlSubcomponentUtil(org.osate.ge.aadl2.internal.util.AadlSubcomponentUtil) ArrayList(java.util.ArrayList) BusinessObjectSelection(org.osate.ge.BusinessObjectSelection) Strings(com.google.common.base.Strings) EClass(org.eclipse.emf.ecore.EClass) AccessSpecification(org.osate.aadl2.AccessSpecification) FeaturePrototypeReference(org.osate.aadl2.FeaturePrototypeReference) FeatureGroupPrototypeActual(org.osate.aadl2.FeatureGroupPrototypeActual) Aadl2Package(org.osate.aadl2.Aadl2Package) Subcomponent(org.osate.aadl2.Subcomponent) Prototype(org.osate.aadl2.Prototype) PortSpecification(org.osate.aadl2.PortSpecification) Iterator(java.util.Iterator) FeatureGroupPrototypeBinding(org.osate.aadl2.FeatureGroupPrototypeBinding) FeaturePrototypeActual(org.osate.aadl2.FeaturePrototypeActual) PrototypeBinding(org.osate.aadl2.PrototypeBinding) EObject(org.eclipse.emf.ecore.EObject) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) Stream(java.util.stream.Stream) ComponentCategory(org.osate.aadl2.ComponentCategory) PrototypeBindingsModel(org.osate.ge.swt.classifiers.PrototypeBindingsModel) AadlModelAccessUtil(org.osate.ge.aadl2.ui.AadlModelAccessUtil) NamedElement(org.osate.aadl2.NamedElement) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) PortSpecification(org.osate.aadl2.PortSpecification) FeaturePrototypeActual(org.osate.aadl2.FeaturePrototypeActual) FeatureGroupPrototypeBinding(org.osate.aadl2.FeatureGroupPrototypeBinding) AccessSpecification(org.osate.aadl2.AccessSpecification) FeatureGroupPrototypeActual(org.osate.aadl2.FeatureGroupPrototypeActual) FeaturePrototypeReference(org.osate.aadl2.FeaturePrototypeReference) ComponentPrototypeBinding(org.osate.aadl2.ComponentPrototypeBinding) FeaturePrototypeBinding(org.osate.aadl2.FeaturePrototypeBinding)

Example 9 with PortSpecification

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

the class FeatureReferenceBindingType method loadBindingData.

// Populate the model's data structure based on the specified bindings
protected void loadBindingData(final PrototypeBindingsModelNode parent, final Collection<PrototypeBinding> bindings) {
    for (final PrototypeBinding b : bindings) {
        // Create a new node for the binding
        PrototypeBindingsModelNode newChild = new PrototypeBindingsModelNode(parent, b);
        // Ignore null bindings
        if (b == null) {
        } else if (b instanceof ComponentPrototypeBinding) {
            final List<ComponentPrototypeActual> actuals = ((ComponentPrototypeBinding) b).getActuals();
            // If the actual specified multiple values, flag the model as having an unsupported value
            if (actuals.size() == 1) {
                final ComponentPrototypeActual actual = actuals.get(0);
                if (actual != null) {
                    setNodeDataClassifier(newChild, actual.getSubcomponentType());
                    loadBindingData(newChild, actual.getBindings());
                }
            } else {
                unsupportedValue = true;
                return;
            }
        } else if (b instanceof FeatureGroupPrototypeBinding) {
            final FeatureGroupPrototypeActual actual = ((FeatureGroupPrototypeBinding) b).getActual();
            if (actual != null) {
                setNodeDataClassifier(newChild, actual.getFeatureType());
                loadBindingData(newChild, actual.getBindings());
            }
        } else if (b instanceof FeaturePrototypeBinding) {
            final FeaturePrototypeActual actual = ((FeaturePrototypeBinding) b).getActual();
            // Populate data based on the type of actual
            if (actual == null) {
            } else if (actual instanceof AccessSpecification) {
                final AccessSpecification as = (AccessSpecification) actual;
                data(newChild).direction = as.getKind();
                data(newChild).type = new AccessSpecificationBindingType(as.getCategory());
                setNodeDataClassifier(newChild, as.getClassifier());
            } else if (actual instanceof FeaturePrototypeReference) {
                final FeaturePrototypeReference fpr = (FeaturePrototypeReference) actual;
                data(newChild).direction = fpr.getDirection();
                data(newChild).type = new FeatureReferenceBindingType();
                setNodeDataClassifier(newChild, fpr.getPrototype());
            } else if (actual instanceof PortSpecification) {
                final PortSpecification ps = (PortSpecification) actual;
                data(newChild).direction = ps.getDirection();
                data(newChild).type = new PortSpecificationBindingType(ps.getCategory());
                setNodeDataClassifier(newChild, ps.getClassifier());
            } else {
                throw new RuntimeException("Unhandled feature prototype actual type: " + actual);
            }
        } else {
            throw new RuntimeException("Unhandled prototype binding type: " + b);
        }
    }
}
Also used : FeatureGroupPrototypeBinding(org.osate.aadl2.FeatureGroupPrototypeBinding) FeatureGroupPrototypeActual(org.osate.aadl2.FeatureGroupPrototypeActual) ComponentPrototypeBinding(org.osate.aadl2.ComponentPrototypeBinding) FeaturePrototypeBinding(org.osate.aadl2.FeaturePrototypeBinding) PortSpecification(org.osate.aadl2.PortSpecification) FeaturePrototypeActual(org.osate.aadl2.FeaturePrototypeActual) ComponentPrototypeActual(org.osate.aadl2.ComponentPrototypeActual) AccessSpecification(org.osate.aadl2.AccessSpecification) List(java.util.List) ArrayList(java.util.ArrayList) FeaturePrototypeReference(org.osate.aadl2.FeaturePrototypeReference) ComponentPrototypeBinding(org.osate.aadl2.ComponentPrototypeBinding) PrototypeBinding(org.osate.aadl2.PrototypeBinding) FeaturePrototypeBinding(org.osate.aadl2.FeaturePrototypeBinding) FeatureGroupPrototypeBinding(org.osate.aadl2.FeatureGroupPrototypeBinding)

Aggregations

PortSpecification (org.osate.aadl2.PortSpecification)7 AccessSpecification (org.osate.aadl2.AccessSpecification)6 FeaturePrototypeBinding (org.osate.aadl2.FeaturePrototypeBinding)6 ComponentPrototypeBinding (org.osate.aadl2.ComponentPrototypeBinding)5 FeatureGroupPrototypeActual (org.osate.aadl2.FeatureGroupPrototypeActual)5 FeatureGroupPrototypeBinding (org.osate.aadl2.FeatureGroupPrototypeBinding)5 ComponentPrototypeActual (org.osate.aadl2.ComponentPrototypeActual)4 FeaturePrototypeActual (org.osate.aadl2.FeaturePrototypeActual)4 FeaturePrototypeReference (org.osate.aadl2.FeaturePrototypeReference)4 AadlString (org.osate.aadl2.AadlString)3 ArrayList (java.util.ArrayList)2 List (java.util.List)2 EObject (org.eclipse.emf.ecore.EObject)2 ComponentClassifier (org.osate.aadl2.ComponentClassifier)2 DirectionType (org.osate.aadl2.DirectionType)2 FeatureGroupPrototype (org.osate.aadl2.FeatureGroupPrototype)2 FeaturePrototype (org.osate.aadl2.FeaturePrototype)2 PrototypeBinding (org.osate.aadl2.PrototypeBinding)2 Strings (com.google.common.base.Strings)1 Iterator (java.util.Iterator)1