Search in sources :

Example 21 with FeatureGroup

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

the class ComponentTypeImpl method createOwnedFeatureGroup.

/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public FeatureGroup createOwnedFeatureGroup() {
    FeatureGroup newOwnedFeatureGroup = (FeatureGroup) create(Aadl2Package.eINSTANCE.getFeatureGroup());
    getOwnedFeatureGroups().add(newOwnedFeatureGroup);
    return newOwnedFeatureGroup;
}
Also used : FeatureGroup(org.osate.aadl2.FeatureGroup)

Example 22 with FeatureGroup

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

the class FeatureGroupTypeImpl method createOwnedFeatureGroup.

/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public FeatureGroup createOwnedFeatureGroup() {
    FeatureGroup newOwnedFeatureGroup = (FeatureGroup) create(Aadl2Package.eINSTANCE.getFeatureGroup());
    getOwnedFeatureGroups().add(newOwnedFeatureGroup);
    return newOwnedFeatureGroup;
}
Also used : FeatureGroup(org.osate.aadl2.FeatureGroup)

Example 23 with FeatureGroup

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

the class FeatureGroupImpl method getAllFeatureGroupType.

/*
	 * Get the feature group type of given feature group or its refinement ancestor, if it has
	 * one, otherwise null.
	 *
	 * @return The FeatureGroupType, or <code>null</code> if none.
	 */
public FeatureGroupType getAllFeatureGroupType() {
    FeatureGroupType cc = getFeatureGroupType();
    Feature f = this;
    while (cc == null && f.getRefined() != null) {
        f = f.getRefined();
        if (f instanceof FeatureGroup) {
            cc = ((FeatureGroup) f).getFeatureGroupType();
        }
    }
    return cc;
}
Also used : FeatureGroup(org.osate.aadl2.FeatureGroup) FeatureGroupType(org.osate.aadl2.FeatureGroupType) Feature(org.osate.aadl2.Feature)

Example 24 with FeatureGroup

use of org.osate.aadl2.FeatureGroup in project osate-plugin by sireum.

the class Visitor method buildEndPoint.

private List<org.sireum.hamr.ir.EndPoint> buildEndPoint(ConnectedElement connElem, List<String> path) {
    List<org.sireum.hamr.ir.EndPoint> result = VisitorUtil.iList();
    final List<String> component = (connElem.getContext() != null) && (connElem.getContext() instanceof Subcomponent) ? VisitorUtil.add(path, connElem.getContext().getName()) : path;
    final List<String> feature = (connElem.getContext() instanceof FeatureGroup) ? VisitorUtil.add(component, connElem.getContext().getName() + "_" + connElem.getConnectionEnd().getName()) : VisitorUtil.add(component, connElem.getConnectionEnd().getName());
    AadlASTJavaFactory.Direction dir = null;
    if (connElem.getConnectionEnd() instanceof DirectedFeatureImpl) {
        final DirectedFeatureImpl inFeature = (DirectedFeatureImpl) connElem.getConnectionEnd();
        if (inFeature.isIn() && inFeature.isOut()) {
            dir = AadlASTJavaFactory.Direction.InOut;
        } else if (inFeature.isIn() && !inFeature.isOut()) {
            dir = AadlASTJavaFactory.Direction.In;
        } else {
            dir = AadlASTJavaFactory.Direction.Out;
        }
    }
    final ConnectionEnd ce = connElem.getConnectionEnd();
    // String cname = AadlUtil.getConnectionEndName(connElem);
    if (ce instanceof FeatureGroupImpl) {
        final FeatureGroupImpl fgce = (FeatureGroupImpl) ce;
        result = VisitorUtil.addAll(result, flattenFeatureGroup(component, fgce.getFullName(), fgce, connElem));
    } else if (ce instanceof BusSubcomponentImpl) {
        result = VisitorUtil.add(result, factory.endPoint(factory.name(feature, VisitorUtil.buildPosInfo(connElem.getConnectionEnd())), null, AadlASTJavaFactory.Direction.InOut));
    } else if (ce instanceof BusAccessImpl) {
        result = VisitorUtil.add(result, factory.endPoint(factory.name(component, (connElem.getContext() != null) ? VisitorUtil.buildPosInfo(connElem.getContext()) : null), factory.name(feature, VisitorUtil.buildPosInfo(connElem.getConnectionEnd())), AadlASTJavaFactory.Direction.InOut));
    } else {
        result = VisitorUtil.add(result, factory.endPoint(factory.name(component, (connElem.getContext() != null) ? VisitorUtil.buildPosInfo(connElem.getContext()) : null), factory.name(feature, VisitorUtil.buildPosInfo(connElem.getConnectionEnd())), dir));
    }
    if (result.size() > 1) {
    // System.out.println("");
    }
    return result;
}
Also used : FeatureGroup(org.osate.aadl2.FeatureGroup) DirectedFeatureImpl(org.osate.aadl2.impl.DirectedFeatureImpl) BusAccessImpl(org.osate.aadl2.impl.BusAccessImpl) BusSubcomponentImpl(org.osate.aadl2.impl.BusSubcomponentImpl) FeatureGroupImpl(org.osate.aadl2.impl.FeatureGroupImpl) DataSubcomponent(org.osate.aadl2.DataSubcomponent) Subcomponent(org.osate.aadl2.Subcomponent) AadlASTJavaFactory(org.sireum.hamr.ir.AadlASTJavaFactory) ConnectionEnd(org.osate.aadl2.ConnectionEnd)

Example 25 with FeatureGroup

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

the class AadlBaUtils method getFeatureType.

/**
 * Analyze the given AADL Osate element and return its enumeration type.
 *
 * It's an improved version of Osate2 org.osate.parser.AadlSemanticCheckSwitch#getFeatureType
 *
 * @param el the given AADL Osate element
 * @return the given AADL Osate element's type
 * @exception UnsupportedOperationException for the unsupported types
 */
/*
	 * <copyright>
	 * Copyright 2009 by Carnegie Mellon University, all rights reserved.
	 *
	 * Use of the Open Source AADL Tool Environment (OSATE) is subject to the terms of the license set forth
	 * at http://www.eclipse.org/legal/cpl-v10.html.
	 *
	 * NO WARRANTY
	 *
	 * ANY INFORMATION, MATERIALS, SERVICES, INTELLECTUAL PROPERTY OR OTHER PROPERTY OR RIGHTS GRANTED OR PROVIDED BY
	 * CARNEGIE MELLON UNIVERSITY PURSUANT TO THIS LICENSE (HEREINAFTER THE "DELIVERABLES") ARE ON AN "AS-IS" BASIS.
	 * CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED AS TO ANY MATTER INCLUDING,
	 * BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, INFORMATIONAL CONTENT,
	 * NONINFRINGEMENT, OR ERROR-FREE OPERATION. CARNEGIE MELLON UNIVERSITY SHALL NOT BE LIABLE FOR INDIRECT, SPECIAL OR
	 * CONSEQUENTIAL DAMAGES, SUCH AS LOSS OF PROFITS OR INABILITY TO USE SAID INTELLECTUAL PROPERTY, UNDER THIS LICENSE,
	 * REGARDLESS OF WHETHER SUCH PARTY WAS AWARE OF THE POSSIBILITY OF SUCH DAMAGES. LICENSEE AGREES THAT IT WILL NOT
	 * MAKE ANY WARRANTY ON BEHALF OF CARNEGIE MELLON UNIVERSITY, EXPRESS OR IMPLIED, TO ANY PERSON CONCERNING THE
	 * APPLICATION OF OR THE RESULTS TO BE OBTAINED WITH THE DELIVERABLES UNDER THIS LICENSE.
	 *
	 * Licensee hereby agrees to defend, indemnify, and hold harmless Carnegie Mellon University, its trustees, officers,
	 * employees, and agents from all claims or demands made against them (and any related losses, expenses, or
	 * attorney's fees) arising out of, or relating to Licensee's and/or its sub licensees' negligent use or willful
	 * misuse of or negligent conduct or willful misconduct regarding the Software, facilities, or other rights or
	 * assistance granted by Carnegie Mellon University under this License, including, but not limited to, any claims of
	 * product liability, personal injury, death, damage to property, or violation of any laws or regulations.
	 *
	 * Carnegie Mellon University Software Engineering Institute authored documents are sponsored by the U.S. Department
	 * of Defense under Contract F19628-00-C-0003. Carnegie Mellon University retains copyrights in all material produced
	 * under this contract. The U.S. Government retains a non-exclusive, royalty-free license to publish or reproduce these
	 * documents, or allow others to do so, for U.S. Government purposes only pursuant to the copyright license
	 * under the contract clause at 252.227.7013.
	 * </copyright>
	 */
public static org.osate.ba.aadlba.FeatureType getFeatureType(Element el) {
    if (el instanceof DataPort) {
        switch(((DataPort) el).getDirection()) {
            case IN:
                return FeatureType.IN_DATA_PORT;
            case OUT:
                return FeatureType.OUT_DATA_PORT;
            case IN_OUT:
                return FeatureType.IN_OUT_DATA_PORT;
        }
    } else if (el instanceof EventPort) {
        switch(((EventPort) el).getDirection()) {
            case IN:
                return FeatureType.IN_EVENT_PORT;
            case OUT:
                return FeatureType.OUT_EVENT_PORT;
            case IN_OUT:
                return FeatureType.IN_OUT_EVENT_PORT;
        }
    } else if (el instanceof EventDataPort) {
        switch(((EventDataPort) el).getDirection()) {
            case IN:
                return FeatureType.IN_EVENT_DATA_PORT;
            case OUT:
                return FeatureType.OUT_EVENT_DATA_PORT;
            case IN_OUT:
                return FeatureType.IN_OUT_EVENT_DATA_PORT;
        }
    } else if (el instanceof FeatureGroup) {
        return FeatureType.FEATURE_GROUP;
    } else if (el instanceof DataAccess) {
        switch(((DataAccess) el).getKind()) {
            case PROVIDES:
                return FeatureType.PROVIDES_DATA_ACCESS;
            case REQUIRES:
                return FeatureType.REQUIRES_DATA_ACCESS;
        }
    } else if (el instanceof SubprogramAccess) {
        switch(((SubprogramAccess) el).getKind()) {
            case PROVIDES:
                return FeatureType.PROVIDES_SUBPROGRAM_ACCESS;
            case REQUIRES:
                return FeatureType.REQUIRES_SUBPROGRAM_ACCESS;
        }
    } else if (el instanceof SubprogramGroupAccess) {
        switch(((SubprogramGroupAccess) el).getKind()) {
            case PROVIDES:
                return FeatureType.PROVIDES_SUBPROGRAM_GROUP_ACCESS;
            case REQUIRES:
                return FeatureType.REQUIRES_SUBPROGRAM_GROUP_ACCESS;
        }
    } else if (el instanceof BusAccess) {
        switch(((BusAccess) el).getKind()) {
            case PROVIDES:
                return FeatureType.PROVIDES_BUS_ACCESS;
            case REQUIRES:
                return FeatureType.REQUIRES_BUS_ACCESS;
        }
    } else if (el instanceof AbstractFeature) {
        return FeatureType.ABSTRACT_FEATURE;
    } else if (el instanceof Parameter) {
        switch(((Parameter) el).getDirection()) {
            case IN:
                return FeatureType.IN_PARAMETER;
            case OUT:
                return FeatureType.OUT_PARAMETER;
            case IN_OUT:
                return FeatureType.IN_OUT_PARAMETER;
        }
    } else if (el instanceof Prototype) {
        if (el instanceof ComponentPrototype) {
            switch(el.eClass().getClassifierID()) {
                case Aadl2Package.SUBPROGRAM_PROTOTYPE:
                    return FeatureType.SUBPROGRAM_PROTOTYPE;
                case Aadl2Package.SUBPROGRAM_GROUP_PROTOTYPE:
                    return FeatureType.SUBPROGRAM_GROUP_PROTOTYPE;
                case Aadl2Package.THREAD_PROTOTYPE:
                    return FeatureType.THREAD_PROTOTYPE;
                case Aadl2Package.THREAD_GROUP_PROTOTYPE:
                    return FeatureType.THREAD_GROUP_PROTOTYPE;
                default:
                    return FeatureType.COMPONENT_PROTOTYPE;
            }
        } else if (el instanceof FeaturePrototype) {
            return getFeaturePrototypeType((FeaturePrototype) el);
        } else if (el instanceof FeatureGroupPrototype) {
            return FeatureType.FEATURE_GROUP_PROTOTYPE;
        }
    } else if (el instanceof PrototypeBinding) {
        if (el instanceof ComponentPrototypeBinding) {
            return FeatureType.COMPONENT_PROTOTYPE_BINDING;
        } else if (el instanceof FeatureGroupPrototypeBinding) {
            return FeatureType.FEATURE_GROUP_PROTOTYPE_BINDING;
        } else // FeaturePrototypeBinding case.
        {
            return FeatureType.FEATURE_PROTOTYPE_BINDING;
        }
    } else if (el instanceof org.osate.aadl2.PropertyConstant) {
        return FeatureType.PROPERTY_CONSTANT;
    } else if (el instanceof org.osate.aadl2.Property) {
        return FeatureType.PROPERTY_VALUE;
    } else if (el instanceof ClassifierValue) {
        return FeatureType.CLASSIFIER_VALUE;
    } else if (el instanceof SubprogramGroup) {
        return FeatureType.SUBPROGRAM_GROUP;
    } else if (el instanceof SubprogramGroupAccess) {
        switch(((SubprogramGroupAccess) el).getKind()) {
            case PROVIDES:
                return FeatureType.PROVIDES_SUBPROGRAM_GROUP_ACCESS;
            case REQUIRES:
                return FeatureType.REQUIRES_SUBPROGRAM_GROUP_ACCESS;
        }
    } else if (el instanceof ThreadGroup) {
        return FeatureType.THREAD_GROUP;
    } else if (el instanceof SystemSubcomponent) {
        return FeatureType.SYSTEM_SUBCOMPONENT;
    } else if (el instanceof SubprogramSubcomponent) {
        return FeatureType.SUBPROGRAM_SUBCOMPONENT;
    } else if (el instanceof SubprogramClassifier) {
        return FeatureType.SUBPROGRAM_CLASSIFIER;
    } else if (el instanceof DataSubcomponent) {
        return FeatureType.DATA_SUBCOMPONENT;
    } else if (el instanceof DataClassifier) {
        return FeatureType.DATA_CLASSIFIER;
    } else if (el instanceof ProcessorClassifier) {
        return FeatureType.PROCESSOR_CLASSIFIER;
    } else if (el instanceof ProcessClassifier) {
        return FeatureType.PROCESS_CLASSIFIER;
    }
    String errorMsg = "getFeatureType : " + el.getClass().getSimpleName() + " is not supported yet at line " + Aadl2Utils.getLocationReference(el).getLine() + ".";
    System.err.println(errorMsg);
    throw new UnsupportedOperationException(errorMsg);
}
Also used : SubprogramGroup(org.osate.aadl2.SubprogramGroup) FeatureGroup(org.osate.aadl2.FeatureGroup) Prototype(org.osate.aadl2.Prototype) DataPrototype(org.osate.aadl2.DataPrototype) FeatureGroupPrototype(org.osate.aadl2.FeatureGroupPrototype) FeaturePrototype(org.osate.aadl2.FeaturePrototype) ComponentPrototype(org.osate.aadl2.ComponentPrototype) ClassifierValue(org.osate.aadl2.ClassifierValue) DataClassifier(org.osate.aadl2.DataClassifier) AadlString(org.osate.aadl2.AadlString) SubprogramClassifier(org.osate.aadl2.SubprogramClassifier) DataAccess(org.osate.aadl2.DataAccess) ComponentPrototype(org.osate.aadl2.ComponentPrototype) ProcessorClassifier(org.osate.aadl2.ProcessorClassifier) DataPort(org.osate.aadl2.DataPort) EventDataPort(org.osate.aadl2.EventDataPort) FeatureGroupPrototype(org.osate.aadl2.FeatureGroupPrototype) EventPort(org.osate.aadl2.EventPort) SubprogramAccess(org.osate.aadl2.SubprogramAccess) ThreadGroup(org.osate.aadl2.ThreadGroup) EventDataPort(org.osate.aadl2.EventDataPort) PrototypeBinding(org.osate.aadl2.PrototypeBinding) FeaturePrototypeBinding(org.osate.aadl2.FeaturePrototypeBinding) FeatureGroupPrototypeBinding(org.osate.aadl2.FeatureGroupPrototypeBinding) ComponentPrototypeBinding(org.osate.aadl2.ComponentPrototypeBinding) SubprogramSubcomponent(org.osate.aadl2.SubprogramSubcomponent) BusAccess(org.osate.aadl2.BusAccess) FeatureGroupPrototypeBinding(org.osate.aadl2.FeatureGroupPrototypeBinding) ProcessClassifier(org.osate.aadl2.ProcessClassifier) AbstractFeature(org.osate.aadl2.AbstractFeature) ComponentPrototypeBinding(org.osate.aadl2.ComponentPrototypeBinding) SubprogramGroupAccess(org.osate.aadl2.SubprogramGroupAccess) BehaviorPropertyConstant(org.osate.ba.aadlba.BehaviorPropertyConstant) SystemSubcomponent(org.osate.aadl2.SystemSubcomponent) FeaturePrototype(org.osate.aadl2.FeaturePrototype) DataSubcomponent(org.osate.aadl2.DataSubcomponent) Parameter(org.osate.aadl2.Parameter)

Aggregations

FeatureGroup (org.osate.aadl2.FeatureGroup)45 FeatureGroupType (org.osate.aadl2.FeatureGroupType)24 Feature (org.osate.aadl2.Feature)16 Subcomponent (org.osate.aadl2.Subcomponent)16 Classifier (org.osate.aadl2.Classifier)14 NamedElement (org.osate.aadl2.NamedElement)12 FeatureInstance (org.osate.aadl2.instance.FeatureInstance)12 ComponentClassifier (org.osate.aadl2.ComponentClassifier)11 ComponentInstance (org.osate.aadl2.instance.ComponentInstance)10 Context (org.osate.aadl2.Context)9 SubprogramSubcomponent (org.osate.aadl2.SubprogramSubcomponent)9 ArrayList (java.util.ArrayList)8 DataSubcomponent (org.osate.aadl2.DataSubcomponent)8 ModeTransition (org.osate.aadl2.ModeTransition)8 EObject (org.eclipse.emf.ecore.EObject)7 ComponentPrototype (org.osate.aadl2.ComponentPrototype)7 FeatureGroupPrototype (org.osate.aadl2.FeatureGroupPrototype)7 ComponentType (org.osate.aadl2.ComponentType)6 ConnectionEnd (org.osate.aadl2.ConnectionEnd)6 Mode (org.osate.aadl2.Mode)6