<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="InterComponentCommunication" nsURI="www.ICCMM.com" nsPrefix="www.ICCMM.com">
  <eClassifiers xsi:type="ecore:EClass" name="InterComponentCommunicationInBundleOfApps">
    <eStructuralFeatures xsi:type="ecore:EReference" name="explicit_communications"
        upperBound="-1" eType="#//ExplicitCommunication" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="implicit_communications"
        upperBound="-1" eType="#//ImplicitCommunication" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataAccess_communications"
        upperBound="-1" eType="#//DataAccessCommunication" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataManipulation_communications"
        upperBound="-1" eType="#//DataManipulationCommunication" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExplicitCommunication">
    <eStructuralFeatures xsi:type="ecore:EReference" name="sender_app" lowerBound="1"
        eType="#//SenderApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="receiver_app" lowerBound="1"
        eType="#//ReceiverApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="intent" lowerBound="1"
        eType="#//ExplicitIntent" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ImplicitCommunication">
    <eStructuralFeatures xsi:type="ecore:EReference" name="sender_app" lowerBound="1"
        eType="#//SenderApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="intent" lowerBound="1"
        eType="#//ImplicitIntent" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SenderApp">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="usesPermissions" upperBound="-1"
        eType="#//UsesPermission" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ReceiverApp">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Permission" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ImplicitIntent">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="SendComponentName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="target_components" upperBound="-1"
        eType="#//ImplicitTargetComponent" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Permission" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="MethodForSend" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Category">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ImplicitTargetComponent">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="receiver_app" lowerBound="1"
        eType="#//ReceiverApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="component_enforcedPermissions"
        upperBound="-1" eType="#//ComponentEnforcedPermission" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Type" eType="#//ComponentType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="component_usedPermissions"
        upperBound="-1" eType="#//ComponentUsedPermission" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExplicitIntent">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="SendComponentName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Receiver" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Permission" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="target_component" lowerBound="1"
        eType="#//ExplicitTargetComponent" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="compname" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Action">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="CompTyoe" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="NameComp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="NameAPP" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Component">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CategoryInBundle">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="NameAPP" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="NameComp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataInBunble">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="DataType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Host" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Scheme" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="NameComp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="NameApp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataOfIntent">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="DataType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Host" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Scheme" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentEnforcedPermission">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="PermissionKind" eType="#//ProtectionLevel"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="CustomPerm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ProtectionLevel">
    <eLiterals name="Normal"/>
    <eLiterals name="Dangerous"/>
    <eLiterals name="Signature"/>
    <eLiterals name="SignatureOrSystem"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ComponentType">
    <eLiterals name="Activity"/>
    <eLiterals name="Service"/>
    <eLiterals name="Receiver"/>
    <eLiterals name="DynamicRegisteredReceiver"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExplicitTargetComponent">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="receiver_app" lowerBound="1"
        eType="#//ReceiverApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="component_enforcedPermissions"
        upperBound="-1" eType="#//ComponentEnforcedPermission" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="exported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Type" eType="#//ComponentType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="component_usedPermissions"
        upperBound="-1" eType="#//ComponentUsedPermission" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="UsesPermission">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="PermissionKind" eType="#//ProtectionLevel"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataAccessCommunication">
    <eStructuralFeatures xsi:type="ecore:EReference" name="sender_app" lowerBound="1"
        eType="#//SenderApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="uri_of_DBR_request" lowerBound="1"
        eType="#//ContentURIrequest" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ContentURIrequest">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="RequestType" eType="#//URIRequestType"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="URI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="SenderComponentName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="receiver_ContentProvider"
        eType="#//ReceiverContentProvider" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="URIRequestType">
    <eLiterals name="ReadRequest"/>
    <eLiterals name="ManipulationRequest"/>
    <eLiterals name="ReadOrManipulationRequest"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ReceiverContentProvider">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Exported" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="authority" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="receiver_app" lowerBound="1"
        eType="#//ReceiverApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="permissions" upperBound="-1"
        eType="#//Permission" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="grantUriPermissions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="URIpermissions" upperBound="-1"
        eType="#//grantUriPermission" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="pathPermissions" upperBound="-1"
        eType="#//PathPermission" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Permission">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Kind" eType="#//PermissionKind"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="PermissionKind" eType="#//ProtectionLevel"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="grantUriPermission">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PathPermission">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="permissions" upperBound="-1"
        eType="#//Permission" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="PermissionKind">
    <eLiterals name="ReadPermission"/>
    <eLiterals name="WritePermission"/>
    <eLiterals name="ReadAndWritePermission" literal="ReadAndwritePermission"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataManipulationCommunication">
    <eStructuralFeatures xsi:type="ecore:EReference" name="sender_app" lowerBound="1"
        eType="#//SenderApp" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="uri_of_DBM_request" lowerBound="1"
        eType="#//ContentURIrequest" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ComponentUsedPermission">
    <eStructuralFeatures xsi:type="ecore:EReference" name="APICallPermissions" upperBound="-1"
        eType="#//APICallPermissions" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="AppComponentName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Package" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="APICallPermissions">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="TargetCompType">
    <eLiterals name="Activity"/>
    <eLiterals name="Service"/>
    <eLiterals name="Receiver"/>
    <eLiterals name="DynamicRegisteredReceiver"/>
  </eClassifiers>
</ecore:EPackage>
