/**
  *
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 @Override
 public EList<Feature> getOwnedFeatures() {
   CacheAdapter cache = getCacheAdapter();
   if (cache != null) {
     Resource eResource = eResource();
     @SuppressWarnings("unchecked")
     EList<Feature> ownedFeatures =
         (EList<Feature>)
             cache.get(eResource, this, Aadl2Package.eINSTANCE.getComponentType_OwnedFeature());
     if (ownedFeatures == null) {
       cache.put(
           eResource,
           this,
           Aadl2Package.eINSTANCE.getComponentType_OwnedFeature(),
           ownedFeatures =
               new DerivedUnionEObjectEList<Feature>(
                   Feature.class,
                   this,
                   Aadl2Package.PROCESSOR_TYPE__OWNED_FEATURE,
                   OWNED_FEATURE_ESUBSETS));
     }
     return ownedFeatures;
   }
   return new DerivedUnionEObjectEList<Feature>(
       Feature.class, this, Aadl2Package.PROCESSOR_TYPE__OWNED_FEATURE, OWNED_FEATURE_ESUBSETS);
 }
 public EList<Classifier> getRedefinitionContexts() {
   CacheAdapter cache = getCacheAdapter();
   if (cache != null) {
     Resource eResource = eResource();
     @SuppressWarnings("unchecked")
     EList<Classifier> redefinitionContexts =
         (EList<Classifier>)
             cache.get(
                 eResource, this, UMLPackage.Literals.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT);
     if (redefinitionContexts == null) {
       cache.put(
           eResource,
           this,
           UMLPackage.Literals.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT,
           redefinitionContexts =
               new DerivedEObjectEList<Classifier>(
                   Classifier.class,
                   this,
                   UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT,
                   REDEFINITION_CONTEXT_ESUBSETS));
     }
     return redefinitionContexts;
   }
   return new DerivedEObjectEList<Classifier>(
       Classifier.class,
       this,
       UMLPackage.REDEFINABLE_ELEMENT__REDEFINITION_CONTEXT,
       REDEFINITION_CONTEXT_ESUBSETS);
 }
 /**
  *
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 public EList<RedefinableElement> getRedefinedElements() {
   CacheAdapter cache = getCacheAdapter();
   if (cache != null) {
     Resource eResource = eResource();
     @SuppressWarnings("unchecked")
     EList<RedefinableElement> redefinedElements =
         (EList<RedefinableElement>)
             cache.get(
                 eResource, this, UMLPackage.Literals.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT);
     if (redefinedElements == null) {
       cache.put(
           eResource,
           this,
           UMLPackage.Literals.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT,
           redefinedElements =
               new DerivedUnionEObjectEList<RedefinableElement>(
                   RedefinableElement.class,
                   this,
                   UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT,
                   null));
     }
     return redefinedElements;
   }
   return new DerivedUnionEObjectEList<RedefinableElement>(
       RedefinableElement.class, this, UMLPackage.REDEFINABLE_ELEMENT__REDEFINED_ELEMENT, null);
 }
 /**
  *
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 @Override
 public EList<Subcomponent> getOwnedSubcomponents() {
   CacheAdapter cache = getCacheAdapter();
   if (cache != null) {
     Resource eResource = eResource();
     @SuppressWarnings("unchecked")
     EList<Subcomponent> ownedSubcomponents =
         (EList<Subcomponent>)
             cache.get(
                 eResource,
                 this,
                 Aadl2Package.eINSTANCE.getComponentImplementation_OwnedSubcomponent());
     if (ownedSubcomponents == null) {
       cache.put(
           eResource,
           this,
           Aadl2Package.eINSTANCE.getComponentImplementation_OwnedSubcomponent(),
           ownedSubcomponents =
               new DerivedUnionEObjectEList<Subcomponent>(
                   Subcomponent.class,
                   this,
                   Aadl2Package.THREAD_IMPLEMENTATION__OWNED_SUBCOMPONENT,
                   OWNED_SUBCOMPONENT_ESUBSETS));
     }
     return ownedSubcomponents;
   }
   return new DerivedUnionEObjectEList<Subcomponent>(
       Subcomponent.class,
       this,
       Aadl2Package.THREAD_IMPLEMENTATION__OWNED_SUBCOMPONENT,
       OWNED_SUBCOMPONENT_ESUBSETS);
 }
 /**
  *
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 @Override
 public EList<Parameter> inputParameters() {
   CacheAdapter cache = getCacheAdapter();
   if (cache != null) {
     @SuppressWarnings("unchecked")
     EList<Parameter> result =
         (EList<Parameter>) cache.get(this, UMLPackage.Literals.CALL_ACTION___INPUT_PARAMETERS);
     if (result == null) {
       cache.put(
           this,
           UMLPackage.Literals.CALL_ACTION___INPUT_PARAMETERS,
           result = CallBehaviorActionOperations.inputParameters(this));
     }
     return result;
   }
   return CallBehaviorActionOperations.inputParameters(this);
 }
 /**
  *
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 @Override
 public EList<InputPin> getInputs() {
   CacheAdapter cache = getCacheAdapter();
   if (cache != null) {
     Resource eResource = eResource();
     @SuppressWarnings("unchecked")
     EList<InputPin> inputs =
         (EList<InputPin>) cache.get(eResource, this, UMLPackage.Literals.ACTION__INPUT);
     if (inputs == null) {
       cache.put(
           eResource,
           this,
           UMLPackage.Literals.ACTION__INPUT,
           inputs =
               new DerivedUnionEObjectEList<InputPin>(
                   InputPin.class, this,
                   UMLPackage.SEND_SIGNAL_ACTION__INPUT, INPUT_ESUBSETS));
     }
     return inputs;
   }
   return new DerivedUnionEObjectEList<InputPin>(
       InputPin.class, this, UMLPackage.SEND_SIGNAL_ACTION__INPUT, INPUT_ESUBSETS);
 }
 /**
  *
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 @Override
 public EList<Element> getSources() {
   CacheAdapter cache = getCacheAdapter();
   if (cache != null) {
     Resource eResource = eResource();
     @SuppressWarnings("unchecked")
     EList<Element> sources =
         (EList<Element>)
             cache.get(eResource, this, UMLPackage.Literals.DIRECTED_RELATIONSHIP__SOURCE);
     if (sources == null) {
       cache.put(
           eResource,
           this,
           UMLPackage.Literals.DIRECTED_RELATIONSHIP__SOURCE,
           sources =
               new DerivedUnionEObjectEList<Element>(
                   Element.class, this, UMLPackage.PACKAGE_IMPORT__SOURCE, SOURCE_ESUBSETS));
     }
     return sources;
   }
   return new DerivedUnionEObjectEList<Element>(
       Element.class, this, UMLPackage.PACKAGE_IMPORT__SOURCE, SOURCE_ESUBSETS);
 }