use of org.osate.aadl2.DataAccess in project VERDICT by ge-high-assurance.
the class Aadl2Vdm method translateProcessTypeObjects.
// End of translateAbstractTypeObjects
/**
* Analyzing each processType:
* 1. Determine if it is a lower-level system or higher-level system
* 2. If lower-level, add to componentType list attribute of Model
* 2.1 Populate the port, contract, cyberRel, safetyRel, event, id, compCategory
* fields of componentType of the Model object
* 3. If higher-level, assign to Model
* 3.1 Populate the safetyReq
* cyberReq, mission fields of Model object
* @param processTypes
* @param m1
* @return
*/
public Model translateProcessTypeObjects(List<ProcessType> processTypes, Model m1, HashSet<String> dataTypeDecl) {
for (ProcessType prcsType : processTypes) {
// variables for unpacking prcsType
List<Event> events = new ArrayList<>();
List<CyberMission> missionReqs = new ArrayList<>();
List<CyberRel> cyberRels = new ArrayList<>();
List<SafetyRel> safetyRels = new ArrayList<>();
List<CyberReq> cyberReqs = new ArrayList<>();
List<SafetyReq> safetyReqs = new ArrayList<>();
// a flag to check if a higher -level component has already been found
boolean higher_flag = false;
// unpacking prcsType
for (AnnexSubclause annex : prcsType.getOwnedAnnexSubclauses()) {
if (annex.getName().equalsIgnoreCase("verdict")) {
Verdict verdictAnnex = VerdictUtil.getVerdict(annex);
for (Statement statement : verdictAnnex.getElements()) {
if (statement instanceof Event) {
events.add((Event) statement);
} else if (statement instanceof CyberMission) {
missionReqs.add((CyberMission) statement);
} else if (statement instanceof CyberReq) {
cyberReqs.add((CyberReq) statement);
} else if (statement instanceof CyberRel) {
cyberRels.add((CyberRel) statement);
} else if (statement instanceof SafetyReq) {
safetyReqs.add((SafetyReq) statement);
} else if (statement instanceof SafetyRel) {
safetyRels.add((SafetyRel) statement);
}
}
}
}
/**
* For every ProcessType,
* populate the id, name, compCateg, port, event,
* cyberRel, and safetyRel fields of componentType
* and add it to the list of componentType
* of the Model object
*/
if (true) {
// No Filter-- do for all System Types
// to pack the memType as a VDM component
verdict.vdm.vdm_model.ComponentType packComponent = new verdict.vdm.vdm_model.ComponentType();
// Note: Not populating "contract" for now
// ISSUE: There is no getId() function for memoryType
packComponent.setId(prcsType.getQualifiedName());
// populating "name"
packComponent.setName(prcsType.getName());
// populating "compCateg"
packComponent.setCompCateg(prcsType.getCategory().getName());
// ISSUE: no getOwnedBusAccesses
// get all data accesses and store them as ports
List<DataAccess> dataAccesses = prcsType.getOwnedDataAccesses();
// checking each dataAccess's details and adding it to the port list
for (DataAccess dataAccess : dataAccesses) {
String portName = dataAccess.getName();
String modeString = "in";
if (dataAccess.getKind() == AccessType.PROVIDES) {
modeString = "providesDataAccess";
} else if (dataAccess.getKind() == AccessType.REQUIRES) {
modeString = "requiresDataAccess";
}
verdict.vdm.vdm_model.Port newPort = createVdmPort(portName, modeString, dataAccess.getQualifiedName());
// Note: Not populating "type" for now
// ISSUE: "probe", "event", and "id" not found in DataPort class or superclass
// add to port list of component
packComponent.getPort().add(newPort);
}
// End of checking each dataAccess
// get all ports
List<DataPort> dataPorts = prcsType.getOwnedDataPorts();
// checking each port's mode and name and adding it to the port list
for (DataPort dataPort : dataPorts) {
verdict.vdm.vdm_model.Port newPort = createVdmPort(dataPort, m1, dataTypeDecl);
// Note: Not populating "type" for now
// ISSUE: "probe", "event", and "id" not found in DataPort class or superclass
// add to port list of component
packComponent.getPort().add(newPort);
}
// End of checking each port
// get all event data ports
List<EventDataPort> eventDataPorts = prcsType.getOwnedEventDataPorts();
for (EventDataPort eventDataPort : eventDataPorts) {
verdict.vdm.vdm_model.Port newPort = createVdmPort(eventDataPort, m1, dataTypeDecl);
// add to port list of component
packComponent.getPort().add(newPort);
}
// get all event ports
List<EventPort> eventPorts = prcsType.getOwnedEventPorts();
for (EventPort eventPort : eventPorts) {
verdict.vdm.vdm_model.Port newPort = createVdmEventPort(eventPort);
// add to port list of component
packComponent.getPort().add(newPort);
}
// packing all events and adding to component
for (Event anEvent : events) {
// To pack the event as a VDM event
verdict.vdm.vdm_model.Event packEvent = createVdmEvent(anEvent);
// adding to the list of component's events
packComponent.getEvent().add(packEvent);
}
// packing all cyberRels and adding to component
for (CyberRel aCyberRel : cyberRels) {
// To pack the cyberRel as a VDM event
verdict.vdm.vdm_model.CyberRel packCyberRel = createVdmCyberRel(aCyberRel);
// adding to the list of component's Cyber relations
packComponent.getCyberRel().add(packCyberRel);
}
// packing all safetyRels and adding to component
for (SafetyRel aSafetyRel : safetyRels) {
// To pack the safetyRel as a VDM event
verdict.vdm.vdm_model.SafetyRel packSafetyRel = createVdmSafetyRel(aSafetyRel);
// adding to the list of component's Safety relations
packComponent.getSafetyRel().add(packSafetyRel);
}
// End of packing all safetyRels
// adding to the list of componenmemTypes of the Model object
m1.getComponentType().add(packComponent);
}
/**
* If a high-level system
* populate the name, safetyReq, cyberReq, and mission
* for the model object
*/
if (!cyberReqs.isEmpty() || !safetyReqs.isEmpty() || !missionReqs.isEmpty()) {
// checking if a high-level system has already been found
if (higher_flag == false) {
higher_flag = true;
} else {
System.out.println("Warning: Multiple high-level systems detected!");
}
// populating name
m1.setName(prcsType.getName());
// packing all safetyReqs and adding to model
for (SafetyReq aSafetyReq : safetyReqs) {
// To pack the safettReq as a VDM event
verdict.vdm.vdm_model.SafetyReq packSafetyReq = createVdmSafetyReq(aSafetyReq, prcsType.getFullName());
// adding to the list of model's Safety requirements
m1.getSafetyReq().add(packSafetyReq);
}
// packing all cyberReqs and adding to model
for (CyberReq aCyberReq : cyberReqs) {
// To pack the safettReq as a VDM event
verdict.vdm.vdm_model.CyberReq packCyberReq = createVdmCyberReq(aCyberReq, prcsType.getFullName());
// adding to the list of model's Cyber requirements
m1.getCyberReq().add(packCyberReq);
}
// packing all missionReqs and adding to model
for (CyberMission aMission : missionReqs) {
// To pack the safettReq as a VDM event
verdict.vdm.vdm_model.Mission packMission = createVdmMission(aMission);
// adding to the list of model's Mission
m1.getMission().add(packMission);
}
// End of packing all missionReqs
}
// End of if a higher-level system
}
// returning the populated Model
return m1;
}
use of org.osate.aadl2.DataAccess in project VERDICT by ge-high-assurance.
the class Aadl2Vdm method getConnectionKind.
/**
* Returns the VDM ConnectionKind
* @param kind
* @return
*/
verdict.vdm.vdm_model.ConnectionKind getConnectionKind(Connection aConn) {
String kindString = "port";
if (aConn.getClass().getSimpleName().equalsIgnoreCase("AccessConnectionImpl")) {
AccessConnectionImpl accessConnImpl = (AccessConnectionImpl) aConn;
if (accessConnImpl.getAccessCategory().getName().equalsIgnoreCase("data")) {
kindString = "dataAccess";
} else if (accessConnImpl.getAccessCategory().getName().equalsIgnoreCase("bus")) {
kindString = "busAccess";
}
} else if (aConn.getClass().getSimpleName().equalsIgnoreCase("PortConnectionImpl")) {
kindString = "port";
} else if (aConn.getClass().getSimpleName().equalsIgnoreCase("ParameterConnectionImpl")) {
kindString = "parameter";
}
verdict.vdm.vdm_model.ConnectionKind returnKind = verdict.vdm.vdm_model.ConnectionKind.fromValue(kindString);
return returnKind;
}
use of org.osate.aadl2.DataAccess in project VERDICT by ge-high-assurance.
the class Aadl2Vdm method translateAbstractTypeObjects.
// End of translateDeviceTypeObjects
/**
* Analyzing each abstractType:
* 1. Determine if it is a lower-level system or higher-level system
* 2. If lower-level, add to componentType list attribute of Model
* 2.1 Populate the port, contract, cyberRel, safetyRel, event, id, compCategory
* fields of componentType of the Model object
* 3. If higher-level, assign to Model
* 3.1 Populate the safetyReq
* cyberReq, mission fields of Model object
* @param abstractTypes
* @param m1
* @return
*/
public Model translateAbstractTypeObjects(List<AbstractType> abstractTypes, Model m1, HashSet<String> dataTypeDecl) {
for (AbstractType absType : abstractTypes) {
// variables for unpacking absType
List<Event> events = new ArrayList<>();
List<CyberMission> missionReqs = new ArrayList<>();
List<CyberRel> cyberRels = new ArrayList<>();
List<SafetyRel> safetyRels = new ArrayList<>();
List<CyberReq> cyberReqs = new ArrayList<>();
List<SafetyReq> safetyReqs = new ArrayList<>();
// a flag to check if a higher -level component has already been found
boolean higher_flag = false;
// unpacking absType
for (AnnexSubclause annex : absType.getOwnedAnnexSubclauses()) {
if (annex.getName().equalsIgnoreCase("verdict")) {
Verdict verdictAnnex = VerdictUtil.getVerdict(annex);
for (Statement statement : verdictAnnex.getElements()) {
if (statement instanceof Event) {
events.add((Event) statement);
} else if (statement instanceof CyberMission) {
missionReqs.add((CyberMission) statement);
} else if (statement instanceof CyberReq) {
cyberReqs.add((CyberReq) statement);
} else if (statement instanceof CyberRel) {
cyberRels.add((CyberRel) statement);
} else if (statement instanceof SafetyReq) {
safetyReqs.add((SafetyReq) statement);
} else if (statement instanceof SafetyRel) {
safetyRels.add((SafetyRel) statement);
}
}
}
}
/**
* For every AbstractType,
* populate the id, name, compCateg, port, event,
* cyberRel, and safetyRel fields of componentType
* and add it to the list of componentType
* of the Model object
*/
if (true) {
// No Filter-- do for all System Types
// to pack the memType as a VDM component
verdict.vdm.vdm_model.ComponentType packComponent = new verdict.vdm.vdm_model.ComponentType();
// Note: Not populating "contract" for now
// ISSUE: There is no getId() function for memoryType
packComponent.setId(absType.getQualifiedName());
// populating "name"
packComponent.setName(absType.getName());
// populating "compCateg"
packComponent.setCompCateg(absType.getCategory().getName());
// get all bus accesses and store them as ports
List<BusAccess> busAccesses = absType.getOwnedBusAccesses();
// checking each busAccess's details and adding it to the port list
for (BusAccess busAccess : busAccesses) {
String portName = busAccess.getName();
String modeString = "in";
if (busAccess.getKind() == AccessType.PROVIDES) {
modeString = "providesBusAccess";
} else if (busAccess.getKind() == AccessType.REQUIRES) {
modeString = "requiresBusAccess";
}
verdict.vdm.vdm_model.Port newPort = createVdmPort(portName, modeString, busAccess.getQualifiedName());
// Note: Not populating "type" for now
// ISSUE: "probe", "event", and "id" not found in DataPort class or superclass
// add to port list of component
packComponent.getPort().add(newPort);
}
// End of checking each busAccess
// get all data accesses and store them as ports
List<DataAccess> dataAccesses = absType.getOwnedDataAccesses();
// checking each dataAccess's details and adding it to the port list
for (DataAccess dataAccess : dataAccesses) {
String portName = dataAccess.getName();
String modeString = "in";
if (dataAccess.getKind() == AccessType.PROVIDES) {
modeString = "providesDataAccess";
} else if (dataAccess.getKind() == AccessType.REQUIRES) {
modeString = "requiresDataAccess";
}
verdict.vdm.vdm_model.Port newPort = createVdmPort(portName, modeString, dataAccess.getQualifiedName());
// Note: Not populating "type" for now
// ISSUE: "probe", "event", and "id" not found in DataPort class or superclass
// add to port list of component
packComponent.getPort().add(newPort);
}
// End of checking each dataAccess
// get all ports
List<DataPort> dataPorts = absType.getOwnedDataPorts();
// checking each port's mode and name and adding it to the port list
for (DataPort dataPort : dataPorts) {
verdict.vdm.vdm_model.Port newPort = createVdmPort(dataPort, m1, dataTypeDecl);
// ISSUE: "probe", "event", and "id" not found in DataPort class or superclass
// add to port list of component
packComponent.getPort().add(newPort);
}
// End of checking each port
// get all event data ports
List<EventDataPort> eventDataPorts = absType.getOwnedEventDataPorts();
for (EventDataPort eventDataPort : eventDataPorts) {
verdict.vdm.vdm_model.Port newPort = createVdmPort(eventDataPort, m1, dataTypeDecl);
// add to port list of component
packComponent.getPort().add(newPort);
}
// get all event ports
List<EventPort> eventPorts = absType.getOwnedEventPorts();
for (EventPort eventPort : eventPorts) {
verdict.vdm.vdm_model.Port newPort = createVdmEventPort(eventPort);
// add to port list of component
packComponent.getPort().add(newPort);
}
// packing all events and adding to component
for (Event anEvent : events) {
// To pack the event as a VDM event
verdict.vdm.vdm_model.Event packEvent = createVdmEvent(anEvent);
// adding to the list of component's events
packComponent.getEvent().add(packEvent);
}
// packing all cyberRels and adding to component
for (CyberRel aCyberRel : cyberRels) {
// To pack the cyberRel as a VDM event
verdict.vdm.vdm_model.CyberRel packCyberRel = createVdmCyberRel(aCyberRel);
// adding to the list of component's Cyber relations
packComponent.getCyberRel().add(packCyberRel);
}
// packing all safetyRels and adding to component
for (SafetyRel aSafetyRel : safetyRels) {
// To pack the safetyRel as a VDM event
verdict.vdm.vdm_model.SafetyRel packSafetyRel = createVdmSafetyRel(aSafetyRel);
// adding to the list of component's Safety relations
packComponent.getSafetyRel().add(packSafetyRel);
}
// End of packing all safetyRels
// adding to the list of componenmemTypes of the Model object
m1.getComponentType().add(packComponent);
}
/**
* If a high-level system
* populate the name, safetyReq, cyberReq, and mission
* for the model object
*/
if (!cyberReqs.isEmpty() || !safetyReqs.isEmpty() || !missionReqs.isEmpty()) {
// checking if a high-level system has already been found
if (higher_flag == false) {
higher_flag = true;
} else {
System.out.println("Warning: Multiple high-level systems detected!");
}
// populating name
m1.setName(absType.getName());
// packing all safetyReqs and adding to model
for (SafetyReq aSafetyReq : safetyReqs) {
// To pack the safettReq as a VDM event
verdict.vdm.vdm_model.SafetyReq packSafetyReq = createVdmSafetyReq(aSafetyReq, absType.getFullName());
// adding to the list of model's Safety requirements
m1.getSafetyReq().add(packSafetyReq);
}
// packing all cyberReqs and adding to model
for (CyberReq aCyberReq : cyberReqs) {
// To pack the safettReq as a VDM event
verdict.vdm.vdm_model.CyberReq packCyberReq = createVdmCyberReq(aCyberReq, absType.getFullName());
// adding to the list of model's Cyber requirements
m1.getCyberReq().add(packCyberReq);
}
// packing all missionReqs and adding to model
for (CyberMission aMission : missionReqs) {
// To pack the safettReq as a VDM event
verdict.vdm.vdm_model.Mission packMission = createVdmMission(aMission);
// adding to the list of model's Mission
m1.getMission().add(packMission);
}
// End of packing all missionReqs
}
// End of if a higher-level system
}
// returning the populated Model
return m1;
}
use of org.osate.aadl2.DataAccess in project VERDICT by ge-high-assurance.
the class Aadl2Vdm method translateComponentImplObjects.
// End of translateProcessorTypeObjects
/**
* Analyzing each component implementation
* @param comImpls
* @param m2
* @return
*/
public Model translateComponentImplObjects(List<ComponentImplementation> comImpls, Map<Property, String> componentPropertyToName, Map<Property, String> connPropertyToName, Model m2, HashSet<String> dataTypeDecl) {
Map<String, String> connectionToBusMap = new HashMap<>();
// creating an object for each implementation first as we will need it later
for (ComponentImplementation aSystemImpl : comImpls) {
// to pack the sysImpl as a VDM componentImpl
verdict.vdm.vdm_model.ComponentImpl packCompImpl = new verdict.vdm.vdm_model.ComponentImpl();
// setting "name" field of packCompImpl, will need later
packCompImpl.setName(aSystemImpl.getName());
// Note: Will skip "Nodebody" field for now
// ISSUE: No "id" field in Component implementations
packCompImpl.setId(aSystemImpl.getQualifiedName());
// adding object to "componentImpl" field of m2
m2.getComponentImpl().add(packCompImpl);
// update map (connection-name -> bus-Instance-Name)
for (PropertyAssociation propAssoc : aSystemImpl.getOwnedPropertyAssociations()) {
if (!(propAssoc.getProperty().getName().equalsIgnoreCase("Actual_Connection_Binding"))) {
System.out.println("System Implementation contains property " + propAssoc.getProperty().getName() + " which is not currently handled.");
continue;
}
if (propAssoc.getOwnedValues().size() != 1) {
throw new RuntimeException("Unexpected number of property owned values: " + propAssoc.getOwnedValues().size());
}
if (!(propAssoc.getOwnedValues().get(0).getOwnedValue() instanceof ListValueImpl)) {
throw new RuntimeException("Unexpected type of property owned value");
} else {
ListValueImpl listVal = (ListValueImpl) propAssoc.getOwnedValues().get(0).getOwnedValue();
if (listVal.getOwnedListElements().size() != 1) {
throw new RuntimeException("Unexpected number of list elements are associated with the property owned value");
} else if (!(listVal.getOwnedListElements().get(0) instanceof ReferenceValueImpl)) {
throw new RuntimeException("Unexpected number of list elements are associated with the property owned value");
} else {
ReferenceValueImpl refVal = (ReferenceValueImpl) listVal.getOwnedListElements().get(0);
ContainmentPathElement pathEle = refVal.getPath();
while (!(pathEle.getNamedElement() instanceof BusSubcomponent)) {
pathEle = pathEle.getPath();
}
String busInstanceName = pathEle.getNamedElement().getQualifiedName();
for (ContainedNamedElement connection : propAssoc.getAppliesTos()) {
// updating map (connection name -> bus name)
connectionToBusMap.put(connection.getPath().getNamedElement().getQualifiedName(), busInstanceName);
}
}
}
}
}
// Getting the reference of the object previously created and populating
for (ComponentImplementation aCompImpl : comImpls) {
// variable to refer to previously created object
verdict.vdm.vdm_model.ComponentImpl packCompImpl = new verdict.vdm.vdm_model.ComponentImpl();
// finding previously created object
for (verdict.vdm.vdm_model.ComponentImpl anImplObj : m2.getComponentImpl()) {
if (anImplObj.getId().equalsIgnoreCase(aCompImpl.getQualifiedName())) {
packCompImpl = anImplObj;
}
}
// setting "type" field of packCompImpl
for (verdict.vdm.vdm_model.ComponentType cType : m2.getComponentType()) {
if (aCompImpl.getType().getQualifiedName().equals(cType.getId())) {
packCompImpl.setType(cType);
}
}
// End of setting "type"
// a BlockImpl object to pack all info for packCompImpl.blockImpl
verdict.vdm.vdm_model.BlockImpl packBlockImpl = new verdict.vdm.vdm_model.BlockImpl();
// adding all subcomponents to "subcomponent" field of packBlockImpl
for (Subcomponent aSubComp : aCompImpl.getOwnedSubcomponents()) {
// to pack all information of a subcomponent
verdict.vdm.vdm_model.ComponentInstance packSubComp = new verdict.vdm.vdm_model.ComponentInstance();
// ISSUE: No "id" field in subcomponents
packSubComp.setId(aSubComp.getQualifiedName());
// setting "name" field of packSubComp
packSubComp.setName(aSubComp.getFullName());
// setting "specification" field of packSubComp
for (verdict.vdm.vdm_model.ComponentType cType : m2.getComponentType()) {
if (aSubComp.getComponentType().getName().equals(cType.getName())) {
packSubComp.setSpecification(cType);
}
}
// setting the "implementation" field of packSubComp
for (verdict.vdm.vdm_model.ComponentImpl cImpl : m2.getComponentImpl()) {
// if(aSubComp.getSubcomponentType().getName().equals(cImpl.getName())){
if (aSubComp.getSubcomponentType().getQualifiedName().equals(cImpl.getId())) {
packSubComp.setImplementation(cImpl);
}
}
// setting "attribute" field of packSubComp
// category of subComponent
String aSubCompCatName = aSubComp.getCategory().getName().toLowerCase();
// checking all collected properties in componentPropertyToName
for (Property prop : componentPropertyToName.keySet()) {
if (isApplicableToCat(prop, aSubCompCatName)) {
// create a GenericAttribute object to pack the property
verdict.vdm.vdm_data.GenericAttribute anAttribute = new verdict.vdm.vdm_data.GenericAttribute();
String value = "";
PropertyAcc propAcc = aSubComp.getPropertyValue(prop);
PropertyExpression defPropExpr = prop.getDefaultValue();
if (propAcc != null && !propAcc.getAssociations().isEmpty()) {
value = getStrRepofPropVal(aSubComp.getPropertyValue(prop));
} else if (defPropExpr != null) {
value = getStrRepofExpr(defPropExpr)[0];
}
if (!value.equals("")) {
// setting the "name" and "value" field of anAttribute
anAttribute.setName(componentPropertyToName.get(prop));
anAttribute.setValue(value);
// get the property type
PropertyType propType = prop.getPropertyType();
QName type = new QName("String");
if (propType instanceof AadlBooleanImpl) {
type = new QName("Bool");
} else if (propType instanceof AadlIntegerImpl) {
type = new QName("Int");
} else if (propType instanceof EnumerationTypeImpl) {
type = new QName("String");
} else {
if (!(propType instanceof AadlStringImpl)) {
type = new QName(propType.toString());
}
}
// parse propertyType fetched using prop.getOwnedPropertyType() and map it to "Bool", "Int", or "String"
anAttribute.setType(type);
// adding asAttribute to packSubComp
packSubComp.getAttribute().add(anAttribute);
}
} else {
// for outer if
continue;
}
}
// adding packSubComp to packBlockImpl
packBlockImpl.getSubcomponent().add(packSubComp);
packCompImpl.setBlockImpl(packBlockImpl);
}
// adding all connections to "connections" field of packBlockImpl
if (aCompImpl.getOwnedConnections() != null && !aCompImpl.getOwnedConnections().isEmpty()) {
for (Connection aConn : aCompImpl.getOwnedConnections()) {
// to pack all information of a connection
verdict.vdm.vdm_model.Connection packConn = new verdict.vdm.vdm_model.Connection();
// populate connectionKind
packConn.setConnectionKind(getConnectionKind(aConn));
// variables to unpack information from AADL object
String srcCompInstName = "";
String destCompInstName = "";
Context srcConnContext = aConn.getAllSourceContext();
Context destConnContext = aConn.getAllDestinationContext();
ConnectionEnd srcConnectionEnd = aConn.getAllSource();
ConnectionEnd destConnectionEnd = aConn.getAllDestination();
if (srcConnContext != null) {
srcCompInstName = srcConnContext.getName();
}
if (destConnContext != null) {
destCompInstName = destConnContext.getName();
}
String srcPortTypeName = "";
String destPortTypeName = "";
String srcPortName = srcConnectionEnd.getName();
String destPortName = destConnectionEnd.getName();
// variables to capture data type information
DataSubcomponentType srcDataSubCompType = null;
DataSubcomponentType destDataSubCompType = null;
if (srcConnectionEnd instanceof DataPort) {
srcPortTypeName = ((DataPort) srcConnectionEnd).isIn() ? (((DataPort) srcConnectionEnd).isOut() ? "inOut" : "in") : "out";
srcDataSubCompType = ((DataPort) srcConnectionEnd).getDataFeatureClassifier();
} else if (srcConnectionEnd instanceof EventDataPort) {
srcPortTypeName = ((EventDataPort) srcConnectionEnd).isIn() ? (((EventDataPort) srcConnectionEnd).isOut() ? "inOut" : "in") : "out";
srcDataSubCompType = ((EventDataPort) srcConnectionEnd).getDataFeatureClassifier();
} else if (srcConnectionEnd instanceof DataAccess) {
AccessType type = ((DataAccess) srcConnectionEnd).getKind();
if (type == AccessType.PROVIDES) {
srcPortTypeName = "providesDataAccess";
} else if (type == AccessType.REQUIRES) {
srcPortTypeName = "requiresDataAccess";
} else {
throw new RuntimeException("Unexpected access type: " + type);
}
srcDataSubCompType = ((DataAccess) srcConnectionEnd).getDataFeatureClassifier();
} else if (srcConnectionEnd instanceof DataSubcomponent) {
srcDataSubCompType = ((DataSubcomponent) srcConnectionEnd).getDataSubcomponentType();
srcPortTypeName = "data";
} else if (srcConnectionEnd instanceof BusAccess) {
// AccessType type = ((BusAccess) srcConnectionEnd).getKind();
// if(type == AccessType.PROVIDES) {
// srcPortTypeName = "providesBusAccess";
// } else if(type == AccessType.REQUIRES) {
// srcPortTypeName = "requiresBusAccess";
// } else {
// throw new RuntimeException("Unexpected access type: " + type);
// }
// BusFeatureClassifier busfeatureClassifier = ((BusAccess) srcConnectionEnd).getBusFeatureClassifier();
// if(busfeatureClassifier instanceof BusImplementation) {
// srcBusImpl = (BusImplementation)busfeatureClassifier;
// }
System.out.println("Warning: Unsupported AADL component element type: " + srcConnectionEnd);
continue;
} else if (srcConnectionEnd instanceof BusSubcomponent) {
// srcBusSubCompType = ((BusSubcomponent)srcConnectionEnd).getBusSubcomponentType();
// srcPortTypeName = "bus";
System.out.println("Warning: Unsupported AADL component element type: " + srcConnectionEnd);
continue;
} else if (srcConnectionEnd instanceof EventPort) {
srcPortTypeName = ((EventPort) srcConnectionEnd).isIn() ? (((EventPort) srcConnectionEnd).isOut() ? "inOut" : "in") : "out";
} else {
throw new RuntimeException("Unsupported AADL component element type: " + srcConnectionEnd + "encountered while processing connections");
}
if (destConnectionEnd instanceof DataPort) {
destPortTypeName = ((DataPort) destConnectionEnd).isIn() ? (((DataPort) destConnectionEnd).isOut() ? "inOut" : "in") : "out";
destDataSubCompType = ((DataPort) destConnectionEnd).getDataFeatureClassifier();
} else if (destConnectionEnd instanceof EventDataPort) {
destPortTypeName = ((EventDataPort) destConnectionEnd).isIn() ? (((EventDataPort) destConnectionEnd).isOut() ? "inOut" : "in") : "out";
destDataSubCompType = ((EventDataPort) destConnectionEnd).getDataFeatureClassifier();
} else if (destConnectionEnd instanceof DataAccess) {
AccessType type = ((DataAccess) destConnectionEnd).getKind();
if (type == AccessType.PROVIDES) {
destPortTypeName = "providesDataAccess";
} else if (type == AccessType.REQUIRES) {
destPortTypeName = "requiresDataAccess";
}
destDataSubCompType = ((DataAccess) destConnectionEnd).getDataFeatureClassifier();
} else if (destConnectionEnd instanceof DataSubcomponent) {
destDataSubCompType = ((DataSubcomponent) destConnectionEnd).getDataSubcomponentType();
destPortTypeName = "data";
} else if (destConnectionEnd instanceof BusAccess) {
// AccessType type = ((BusAccess) destConnectionEnd).getKind();
// if(type == AccessType.PROVIDES) {
// destPortTypeName = "providesBusAccess";
// } else if(type == AccessType.REQUIRES) {
// destPortTypeName = "requiresBusAccess";
// } else {
// throw new RuntimeException("Unexpected access type: " + type);
// }
// BusFeatureClassifier busfeatureClassifier = ((BusAccess) destConnectionEnd).getBusFeatureClassifier();
// if(busfeatureClassifier instanceof BusImplementation) {
// destBusImpl = (BusImplementation)busfeatureClassifier;
// }
System.out.println("Warning: Unsupported AADL component element type: " + destConnectionEnd);
continue;
} else if (destConnectionEnd instanceof BusSubcomponent) {
// destBusSubCompType = ((BusSubcomponent)destConnectionEnd).getBusSubcomponentType();
// destPortTypeName = "bus";
System.out.println("Warning: Unsupported AADL component element type: " + destConnectionEnd);
continue;
} else if (destConnectionEnd instanceof EventPort) {
destPortTypeName = ((EventPort) destConnectionEnd).isIn() ? (((EventPort) destConnectionEnd).isOut() ? "inOut" : "in") : "out";
} else {
throw new RuntimeException("Unsupported AADL component element type: " + destConnectionEnd + "encountered while processing connections");
}
// setting name
packConn.setName(aConn.getFullName());
packConn.setQualifiedName(aConn.getQualifiedName());
if (connectionToBusMap.containsKey(aConn.getQualifiedName())) {
packConn.setActualConnectionBinding(connectionToBusMap.get(aConn.getQualifiedName()));
}
// --- Populate packConn below ---
// to pack source
verdict.vdm.vdm_model.ConnectionEnd packSrcEnd = new verdict.vdm.vdm_model.ConnectionEnd();
// to pack "componentPort" of packSrcEnd
verdict.vdm.vdm_model.Port packSrcEndPort = new verdict.vdm.vdm_model.Port();
// } else
if (srcConnectionEnd instanceof EventPort) {
packSrcEndPort = createVdmConnectionEventPort(srcPortName, srcPortTypeName, srcConnectionEnd.getQualifiedName());
} else {
// if not a bus access port or bus implementation port or event port
packSrcEndPort = createVdmConnectionPort(srcPortName, srcPortTypeName, srcConnectionEnd.getQualifiedName(), srcDataSubCompType, m2, dataTypeDecl);
}
// If source port is independent of a component instance
if (srcCompInstName.equals("")) {
packSrcEnd.setComponentPort(packSrcEndPort);
} else {
// to pack "subcomponentPort" of packSrcEnd
verdict.vdm.vdm_model.CompInstancePort packSrcEndCompInstPort = new verdict.vdm.vdm_model.CompInstancePort();
// putting a reference to appropriate "subcomponent" from packBlockImpl in "subcomponent" of packSrcEndCompInstPort
for (verdict.vdm.vdm_model.ComponentInstance checkCompInst : packBlockImpl.getSubcomponent()) {
if (checkCompInst.getName().equals(srcCompInstName)) {
packSrcEndCompInstPort.setSubcomponent(checkCompInst);
break;
} else {
continue;
}
}
packSrcEndCompInstPort.setPort(packSrcEndPort);
// setting "subcomponentPort" of packSrcEnd
packSrcEnd.setSubcomponentPort(packSrcEndCompInstPort);
}
// adding to "source" of packConn
packConn.setSource(packSrcEnd);
// to pack destination
verdict.vdm.vdm_model.ConnectionEnd packDestEnd = new verdict.vdm.vdm_model.ConnectionEnd();
// to pack "componentPort" of packDestEnd
verdict.vdm.vdm_model.Port packDestEndPort = new verdict.vdm.vdm_model.Port();
// } else
if (destConnectionEnd instanceof EventPort) {
packDestEndPort = createVdmConnectionEventPort(destPortName, destPortTypeName, destConnectionEnd.getQualifiedName());
} else {
// if not a bus access port or bus implementation port or eventport
packDestEndPort = createVdmConnectionPort(destPortName, destPortTypeName, destConnectionEnd.getQualifiedName(), destDataSubCompType, m2, dataTypeDecl);
}
// If source port is independent of a component instance
if (destCompInstName.equals("")) {
packDestEnd.setComponentPort(packDestEndPort);
} else {
// to pack "subcomponentPort" of packSrcEnd
verdict.vdm.vdm_model.CompInstancePort packDestEndCompInstPort = new verdict.vdm.vdm_model.CompInstancePort();
// putting a reference to appropriate "subcomponent" from packBlockImpl in "subcomponent" of packSrcEndCompInstPort
for (verdict.vdm.vdm_model.ComponentInstance checkCompInst : packBlockImpl.getSubcomponent()) {
if (checkCompInst.getName().equals(destCompInstName)) {
packDestEndCompInstPort.setSubcomponent(checkCompInst);
break;
} else {
continue;
}
}
packDestEndCompInstPort.setPort(packDestEndPort);
// setting "subcomponentPort" of packDestEnd
packDestEnd.setSubcomponentPort(packDestEndCompInstPort);
}
// adding to "source" of packConn
packConn.setDestination(packDestEnd);
// adding connection properties from connProperty.ToName
for (Property prop : connPropertyToName.keySet()) {
// create a GenericAttribute object to pack the property
verdict.vdm.vdm_data.GenericAttribute aConnAttribute = new verdict.vdm.vdm_data.GenericAttribute();
String value = "";
PropertyAcc propAcc = aConn.getPropertyValue(prop);
PropertyExpression defPropExpr = prop.getDefaultValue();
if (propAcc != null && !propAcc.getAssociations().isEmpty()) {
value = getStrRepofPropVal(propAcc);
} else if (defPropExpr != null) {
value = getStrRepofExpr(defPropExpr)[0];
}
if (!value.equals("")) {
// setting the "name" and "value" field of anAttribute
aConnAttribute.setName(connPropertyToName.get(prop));
aConnAttribute.setValue(value);
PropertyType propType = prop.getPropertyType();
QName type = new QName("String");
if (propType instanceof AadlBooleanImpl) {
type = new QName("Bool");
} else if (propType instanceof AadlIntegerImpl) {
type = new QName("Int");
} else if (propType instanceof EnumerationTypeImpl) {
type = new QName("String");
} else {
if (!(propType instanceof AadlStringImpl)) {
type = new QName(propType.toString());
}
}
// parse propertyType fetched using prop.getOwnedPropertyType() and map it to "Bool", "Int", or "String"
aConnAttribute.setType(type);
// adding asAttribute to packSubComp
packConn.getAttribute().add(aConnAttribute);
}
}
if (aConn.isBidirectional()) {
packConn.setDirection(verdict.vdm.vdm_model.Direction.fromValue("bidirectional"));
// to pack reverse connection
verdict.vdm.vdm_model.Connection packReverseConn = new verdict.vdm.vdm_model.Connection();
packReverseConn.setName(packConn.getName() + "_reverse");
packReverseConn.setSource(packConn.getDestination());
packReverseConn.setDestination(packConn.getSource());
for (verdict.vdm.vdm_data.GenericAttribute anAttribute : packConn.getAttribute()) {
packReverseConn.getAttribute().add(anAttribute);
}
packReverseConn.setDirection(verdict.vdm.vdm_model.Direction.fromValue("bidirectional"));
// add packReverseConn to packBlockImpl
packBlockImpl.getConnection().add(packReverseConn);
} else {
packConn.setDirection(verdict.vdm.vdm_model.Direction.fromValue("unidirectional"));
}
// add packConn to packBlockImpl
packBlockImpl.getConnection().add(packConn);
packCompImpl.setBlockImpl(packBlockImpl);
}
}
// End of adding all connections
// setting "blackImpl" field of packCompImpl
// packCompImpl.setBlockImpl(packBlockImpl);
}
// return populated Model
return m2;
}
use of org.osate.aadl2.DataAccess in project osate2 by osate.
the class AadlBaPackageImpl method initializePackageContents.
/**
* Complete the initialization of the package and its meta-model. This
* method is guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void initializePackageContents() {
if (isInitialized)
return;
isInitialized = true;
// Initialize package
setName(eNAME);
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
// Obtain other dependent packages
Aadl2Package theAadl2Package = (Aadl2Package) EPackage.Registry.INSTANCE.getEPackage(Aadl2Package.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
actualPortHolderEClass.getESuperTypes().add(this.getPortHolder());
assignmentActionEClass.getESuperTypes().add(this.getBasicAction());
anyEClass.getESuperTypes().add(this.getValueExpression());
basicActionEClass.getESuperTypes().add(this.getBehaviorAction());
basicPropertyHolderEClass.getESuperTypes().add(this.getPropertyElementHolder());
behaviorActionEClass.getESuperTypes().add(this.getBehaviorActions());
behaviorActionBlockEClass.getESuperTypes().add(this.getBehaviorAction());
behaviorActionBlockEClass.getESuperTypes().add(this.getBehaviorElement());
behaviorActionCollectionEClass.getESuperTypes().add(this.getBehaviorActions());
behaviorActionsEClass.getESuperTypes().add(this.getBehaviorElement());
behaviorActionSequenceEClass.getESuperTypes().add(this.getBehaviorActionCollection());
behaviorActionSetEClass.getESuperTypes().add(this.getBehaviorActionCollection());
behaviorAnnexEClass.getESuperTypes().add(theAadl2Package.getAnnexSubclause());
behaviorAnnexEClass.getESuperTypes().add(this.getBehaviorElement());
behaviorBooleanLiteralEClass.getESuperTypes().add(theAadl2Package.getBooleanLiteral());
behaviorBooleanLiteralEClass.getESuperTypes().add(this.getLiteral());
behaviorConditionEClass.getESuperTypes().add(this.getBehaviorElement());
behaviorElementEClass.getESuperTypes().add(theAadl2Package.getElement());
behaviorIntegerLiteralEClass.getESuperTypes().add(theAadl2Package.getIntegerLiteral());
behaviorIntegerLiteralEClass.getESuperTypes().add(this.getNumericLiteral());
behaviorNamedElementEClass.getESuperTypes().add(theAadl2Package.getNamedElement());
behaviorNamedElementEClass.getESuperTypes().add(this.getBehaviorElement());
behaviorPropertyConstantEClass.getESuperTypes().add(this.getValueConstant());
behaviorPropertyConstantEClass.getESuperTypes().add(this.getIntegerValueConstant());
behaviorRealLiteralEClass.getESuperTypes().add(theAadl2Package.getRealLiteral());
behaviorRealLiteralEClass.getESuperTypes().add(this.getNumericLiteral());
behaviorStateEClass.getESuperTypes().add(this.getBehaviorNamedElement());
behaviorStringLiteralEClass.getESuperTypes().add(theAadl2Package.getStringLiteral());
behaviorStringLiteralEClass.getESuperTypes().add(this.getLiteral());
behaviorTimeEClass.getESuperTypes().add(this.getBehaviorElement());
behaviorTransitionEClass.getESuperTypes().add(this.getBehaviorNamedElement());
behaviorVariableEClass.getESuperTypes().add(this.getBehaviorNamedElement());
behaviorVariableEClass.getESuperTypes().add(theAadl2Package.getArrayableElement());
behaviorVariableEClass.getESuperTypes().add(theAadl2Package.getData());
behaviorVariableHolderEClass.getESuperTypes().add(this.getDataHolder());
behaviorVariableHolderEClass.getESuperTypes().add(this.getIndexableElement());
behaviorVariableHolderEClass.getESuperTypes().add(this.getTarget());
behaviorVariableHolderEClass.getESuperTypes().add(this.getElementValues());
behaviorVariableHolderEClass.getESuperTypes().add(this.getSubprogramHolderProxy());
behaviorVariableHolderEClass.getESuperTypes().add(this.getClassifierFeatureHolder());
calledSubprogramHolderEClass.getESuperTypes().add(this.getElementHolder());
calledSubprogramHolderEClass.getESuperTypes().add(this.getIndexableElement());
calledSubprogramHolderEClass.getESuperTypes().add(this.getGroupableElement());
classifierFeatureHolderEClass.getESuperTypes().add(this.getElementHolder());
classifierFeaturePropertyReferenceEClass.getESuperTypes().add(this.getPropertyReference());
classifierPropertyReferenceEClass.getESuperTypes().add(this.getPropertyReference());
communicationActionEClass.getESuperTypes().add(this.getBasicAction());
completionRelativeTimeoutEClass.getESuperTypes().add(this.getBehaviorTime());
completionRelativeTimeoutEClass.getESuperTypes().add(this.getDispatchRelativeTimeout());
condStatementEClass.getESuperTypes().add(this.getBehaviorAction());
dataAccessHolderEClass.getESuperTypes().add(this.getDataHolder());
dataAccessHolderEClass.getESuperTypes().add(this.getTarget());
dataAccessHolderEClass.getESuperTypes().add(this.getElementValues());
dataAccessHolderEClass.getESuperTypes().add(this.getSubprogramHolderProxy());
dataAccessHolderEClass.getESuperTypes().add(this.getFeatureHolder());
dataAccessPrototypeHolderEClass.getESuperTypes().add(this.getDataHolder());
dataAccessPrototypeHolderEClass.getESuperTypes().add(this.getPrototypeHolder());
dataAccessPrototypeHolderEClass.getESuperTypes().add(this.getTarget());
dataAccessPrototypeHolderEClass.getESuperTypes().add(this.getElementValues());
dataComponentReferenceEClass.getESuperTypes().add(this.getElementValues());
dataComponentReferenceEClass.getESuperTypes().add(this.getTarget());
dataComponentReferenceEClass.getESuperTypes().add(this.getValueVariable());
dataComponentReferenceEClass.getESuperTypes().add(this.getIntegerValueVariable());
dataHolderEClass.getESuperTypes().add(this.getElementHolder());
dataHolderEClass.getESuperTypes().add(this.getIntegerValueVariable());
dataHolderEClass.getESuperTypes().add(this.getValueVariable());
dataPortHolderEClass.getESuperTypes().add(this.getActualPortHolder());
dataPortHolderEClass.getESuperTypes().add(this.getTarget());
dataSubcomponentHolderEClass.getESuperTypes().add(this.getDataHolder());
dataSubcomponentHolderEClass.getESuperTypes().add(this.getTarget());
dataSubcomponentHolderEClass.getESuperTypes().add(this.getElementValues());
dataSubcomponentHolderEClass.getESuperTypes().add(this.getSubprogramHolderProxy());
dataSubcomponentHolderEClass.getESuperTypes().add(this.getSubcomponentHolder());
dispatchConditionEClass.getESuperTypes().add(this.getBehaviorCondition());
dispatchConjunctionEClass.getESuperTypes().add(this.getBehaviorElement());
dispatchRelativeTimeoutEClass.getESuperTypes().add(this.getDispatchTriggerCondition());
dispatchTriggerEClass.getESuperTypes().add(this.getBehaviorElement());
dispatchTriggerConditionEClass.getESuperTypes().add(this.getBehaviorElement());
dispatchTriggerConditionStopEClass.getESuperTypes().add(this.getDispatchTriggerCondition());
dispatchTriggerLogicalExpressionEClass.getESuperTypes().add(this.getDispatchTriggerCondition());
elementHolderEClass.getESuperTypes().add(this.getBehaviorElement());
elementValuesEClass.getESuperTypes().add(this.getBehaviorElement());
elseStatementEClass.getESuperTypes().add(this.getCondStatement());
enumLiteralHolderEClass.getESuperTypes().add(this.getPropertyElementHolder());
eventDataPortHolderEClass.getESuperTypes().add(this.getActualPortHolder());
eventDataPortHolderEClass.getESuperTypes().add(this.getElementValues());
eventDataPortHolderEClass.getESuperTypes().add(this.getDispatchTrigger());
eventDataPortHolderEClass.getESuperTypes().add(this.getModeSwitchTrigger());
eventDataPortHolderEClass.getESuperTypes().add(this.getTarget());
eventPortHolderEClass.getESuperTypes().add(this.getActualPortHolder());
eventPortHolderEClass.getESuperTypes().add(this.getDispatchTrigger());
eventPortHolderEClass.getESuperTypes().add(this.getModeSwitchTrigger());
eventPortHolderEClass.getESuperTypes().add(this.getTarget());
executeConditionEClass.getESuperTypes().add(this.getBehaviorCondition());
executionTimeoutCatchEClass.getESuperTypes().add(this.getExecuteCondition());
factorEClass.getESuperTypes().add(this.getBehaviorElement());
featureHolderEClass.getESuperTypes().add(this.getClassifierFeatureHolder());
featureHolderEClass.getESuperTypes().add(this.getIndexableElement());
featureHolderEClass.getESuperTypes().add(this.getGroupableElement());
featurePrototypeHolderEClass.getESuperTypes().add(this.getDataHolder());
featurePrototypeHolderEClass.getESuperTypes().add(this.getPrototypeHolder());
featurePrototypeHolderEClass.getESuperTypes().add(this.getTarget());
featurePrototypeHolderEClass.getESuperTypes().add(this.getElementValues());
forOrForAllStatementEClass.getESuperTypes().add(this.getLoopStatement());
groupableElementEClass.getESuperTypes().add(this.getBehaviorElement());
groupHolderEClass.getESuperTypes().add(this.getElementHolder());
groupHolderEClass.getESuperTypes().add(this.getIndexableElement());
groupPrototypeHolderEClass.getESuperTypes().add(this.getGroupHolder());
ifStatementEClass.getESuperTypes().add(this.getCondStatement());
ifStatementEClass.getESuperTypes().add(this.getElseStatement());
indexableElementEClass.getESuperTypes().add(this.getBehaviorElement());
integerRangeEClass.getESuperTypes().add(this.getElementValues());
integerValueEClass.getESuperTypes().add(this.getBehaviorElement());
integerValueConstantEClass.getESuperTypes().add(this.getIntegerValue());
integerValueConstantEClass.getESuperTypes().add(this.getValueConstant());
integerValueVariableEClass.getESuperTypes().add(this.getIntegerValue());
integerValueVariableEClass.getESuperTypes().add(this.getValueVariable());
iterativeVariableEClass.getESuperTypes().add(this.getBehaviorNamedElement());
iterativeVariableHolderEClass.getESuperTypes().add(this.getDataHolder());
literalEClass.getESuperTypes().add(this.getValueConstant());
literalEClass.getESuperTypes().add(this.getIntegerValueConstant());
lockActionEClass.getESuperTypes().add(this.getSharedDataAction());
loopStatementEClass.getESuperTypes().add(this.getCondStatement());
lowerBoundEClass.getESuperTypes().add(this.getPropertyNameField());
numericLiteralEClass.getESuperTypes().add(theAadl2Package.getNumberValue());
numericLiteralEClass.getESuperTypes().add(this.getLiteral());
otherwiseEClass.getESuperTypes().add(this.getExecuteCondition());
parameterHolderEClass.getESuperTypes().add(this.getDataHolder());
parameterHolderEClass.getESuperTypes().add(this.getTarget());
parameterHolderEClass.getESuperTypes().add(this.getElementValues());
parameterHolderEClass.getESuperTypes().add(this.getFeatureHolder());
parameterLabelEClass.getESuperTypes().add(this.getBehaviorElement());
portCountValueEClass.getESuperTypes().add(this.getActualPortHolder());
portDequeueActionEClass.getESuperTypes().add(this.getCommunicationAction());
portDequeueValueEClass.getESuperTypes().add(this.getActualPortHolder());
portFreezeActionEClass.getESuperTypes().add(this.getActualPortHolder());
portFreezeActionEClass.getESuperTypes().add(this.getCommunicationAction());
portFreshValueEClass.getESuperTypes().add(this.getActualPortHolder());
portHolderEClass.getESuperTypes().add(this.getValueVariable());
portHolderEClass.getESuperTypes().add(this.getIntegerValueVariable());
portHolderEClass.getESuperTypes().add(this.getFeatureHolder());
portPrototypeHolderEClass.getESuperTypes().add(this.getPortHolder());
portPrototypeHolderEClass.getESuperTypes().add(this.getPrototypeHolder());
portPrototypeHolderEClass.getESuperTypes().add(this.getTarget());
portSendActionEClass.getESuperTypes().add(this.getCommunicationAction());
propertyAssociationHolderEClass.getESuperTypes().add(this.getPropertyElementHolder());
propertyElementHolderEClass.getESuperTypes().add(this.getBehaviorElement());
propertyElementHolderEClass.getESuperTypes().add(this.getIndexableElement());
propertyExpressionHolderEClass.getESuperTypes().add(this.getPropertyElementHolder());
propertyNameFieldEClass.getESuperTypes().add(this.getBehaviorElement());
propertyNameHolderEClass.getESuperTypes().add(this.getBehaviorElement());
propertyReferenceEClass.getESuperTypes().add(this.getValueConstant());
propertyReferenceEClass.getESuperTypes().add(this.getIntegerValueConstant());
propertySetPropertyReferenceEClass.getESuperTypes().add(this.getPropertyReference());
propertyTypeHolderEClass.getESuperTypes().add(this.getPropertyElementHolder());
prototypeHolderEClass.getESuperTypes().add(this.getIndexableElement());
prototypeHolderEClass.getESuperTypes().add(this.getGroupableElement());
prototypeHolderEClass.getESuperTypes().add(this.getClassifierFeatureHolder());
relationEClass.getESuperTypes().add(this.getBehaviorElement());
sharedDataActionEClass.getESuperTypes().add(this.getCommunicationAction());
simpleExpressionEClass.getESuperTypes().add(this.getBehaviorElement());
structUnionElementEClass.getESuperTypes().add(this.getBehaviorNamedElement());
structUnionElementHolderEClass.getESuperTypes().add(this.getDataHolder());
structUnionElementHolderEClass.getESuperTypes().add(this.getIndexableElement());
structUnionElementHolderEClass.getESuperTypes().add(this.getTarget());
structUnionElementHolderEClass.getESuperTypes().add(this.getElementValues());
subcomponentHolderEClass.getESuperTypes().add(this.getClassifierFeatureHolder());
subcomponentHolderEClass.getESuperTypes().add(this.getIndexableElement());
subcomponentHolderEClass.getESuperTypes().add(this.getGroupableElement());
subprogramAccessHolderEClass.getESuperTypes().add(this.getDispatchTriggerCondition());
subprogramAccessHolderEClass.getESuperTypes().add(this.getCalledSubprogramHolder());
subprogramAccessHolderEClass.getESuperTypes().add(this.getFeatureHolder());
subprogramCallActionEClass.getESuperTypes().add(this.getCommunicationAction());
subprogramHolderEClass.getESuperTypes().add(this.getCalledSubprogramHolder());
subprogramHolderProxyEClass.getESuperTypes().add(this.getBehaviorElement());
subprogramPrototypeHolderEClass.getESuperTypes().add(this.getCalledSubprogramHolder());
subprogramPrototypeHolderEClass.getESuperTypes().add(this.getPrototypeHolder());
subprogramSubcomponentHolderEClass.getESuperTypes().add(this.getSubcomponentHolder());
subprogramSubcomponentHolderEClass.getESuperTypes().add(this.getCalledSubprogramHolder());
targetEClass.getESuperTypes().add(this.getParameterLabel());
targetEClass.getESuperTypes().add(this.getBehaviorElement());
termEClass.getESuperTypes().add(this.getBehaviorElement());
timedActionEClass.getESuperTypes().add(this.getBasicAction());
unlockActionEClass.getESuperTypes().add(this.getSharedDataAction());
upperBoundEClass.getESuperTypes().add(this.getPropertyNameField());
valueEClass.getESuperTypes().add(this.getBehaviorElement());
valueConstantEClass.getESuperTypes().add(this.getValue());
valueExpressionEClass.getESuperTypes().add(this.getValue());
valueExpressionEClass.getESuperTypes().add(this.getParameterLabel());
valueExpressionEClass.getESuperTypes().add(this.getExecuteCondition());
valueVariableEClass.getESuperTypes().add(this.getValue());
whileOrDoUntilStatementEClass.getESuperTypes().add(this.getLoopStatement());
modeSwitchTriggerLogicalExpressionEClass.getESuperTypes().add(this.getModeSwitchTriggerCondition());
modeSwitchTriggerConditionEClass.getESuperTypes().add(this.getBehaviorCondition());
modeSwitchConjunctionEClass.getESuperTypes().add(this.getBehaviorElement());
modeSwitchTriggerEClass.getESuperTypes().add(this.getBehaviorElement());
// Initialize classes and features; add operations and parameters
initEClass(actualPortHolderEClass, ActualPortHolder.class, "ActualPortHolder", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
EOperation op = addEOperation(actualPortHolderEClass, null, "setPort", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getPort(), "port", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(actualPortHolderEClass, theAadl2Package.getPort(), "getPort", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(assignmentActionEClass, AssignmentAction.class, "AssignmentAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAssignmentAction_Target(), this.getTarget(), null, "target", null, 1, 1, AssignmentAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getAssignmentAction_ValueExpression(), this.getValueExpression(), null, "valueExpression", null, 1, 1, AssignmentAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(anyEClass, Any.class, "Any", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(basicActionEClass, BasicAction.class, "BasicAction", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(basicPropertyHolderEClass, BasicPropertyHolder.class, "BasicPropertyHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(basicPropertyHolderEClass, null, "setBasicProperty", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getBasicProperty(), "basicProperty", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(basicPropertyHolderEClass, theAadl2Package.getBasicProperty(), "getBasicProperty", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(behaviorActionEClass, BehaviorAction.class, "BehaviorAction", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorActionBlockEClass, BehaviorActionBlock.class, "BehaviorActionBlock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBehaviorActionBlock_Content(), this.getBehaviorActions(), null, "content", null, 1, 1, BehaviorActionBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorActionBlock_Timeout(), this.getBehaviorTime(), null, "timeout", null, 0, 1, BehaviorActionBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorActionCollectionEClass, BehaviorActionCollection.class, "BehaviorActionCollection", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBehaviorActionCollection_Actions(), this.getBehaviorAction(), null, "actions", null, 2, -1, BehaviorActionCollection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorActionsEClass, BehaviorActions.class, "BehaviorActions", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorActionSequenceEClass, BehaviorActionSequence.class, "BehaviorActionSequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorActionSetEClass, BehaviorActionSet.class, "BehaviorActionSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorAnnexEClass, BehaviorAnnex.class, "BehaviorAnnex", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBehaviorAnnex_Variables(), this.getBehaviorVariable(), null, "variables", null, 0, -1, BehaviorAnnex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorAnnex_States(), this.getBehaviorState(), null, "states", null, 0, -1, BehaviorAnnex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorAnnex_Transitions(), this.getBehaviorTransition(), null, "transitions", null, 0, -1, BehaviorAnnex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorAnnex_Actions(), this.getBehaviorActionBlock(), null, "actions", null, 0, -1, BehaviorAnnex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorAnnex_Conditions(), this.getBehaviorCondition(), null, "conditions", null, 0, -1, BehaviorAnnex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorAnnex_InitialState(), this.getBehaviorState(), null, "initialState", null, 1, 1, BehaviorAnnex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorBooleanLiteralEClass, BehaviorBooleanLiteral.class, "BehaviorBooleanLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorConditionEClass, BehaviorCondition.class, "BehaviorCondition", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorElementEClass, BehaviorElement.class, "BehaviorElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorIntegerLiteralEClass, BehaviorIntegerLiteral.class, "BehaviorIntegerLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorNamedElementEClass, BehaviorNamedElement.class, "BehaviorNamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorPropertyConstantEClass, BehaviorPropertyConstant.class, "BehaviorPropertyConstant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBehaviorPropertyConstant_Property(), theAadl2Package.getPropertyConstant(), null, "property", null, 1, 1, BehaviorPropertyConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorPropertyConstant_PropertySet(), theAadl2Package.getPropertySet(), null, "propertySet", null, 0, 1, BehaviorPropertyConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorRealLiteralEClass, BehaviorRealLiteral.class, "BehaviorRealLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorStateEClass, BehaviorState.class, "BehaviorState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getBehaviorState_Initial(), this.getBoolean(), "initial", "false", 1, 1, BehaviorState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getBehaviorState_Complete(), this.getBoolean(), "complete", "false", 1, 1, BehaviorState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getBehaviorState_Final(), this.getBoolean(), "final", "false", 1, 1, BehaviorState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorState_BindedMode(), theAadl2Package.getMode(), null, "bindedMode", null, 0, 1, BehaviorState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorState_IncomingTransitions(), this.getBehaviorTransition(), this.getBehaviorTransition_DestinationState(), "incomingTransitions", null, 0, -1, BehaviorState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorState_OutgoingTransitions(), this.getBehaviorTransition(), this.getBehaviorTransition_SourceState(), "outgoingTransitions", null, 0, -1, BehaviorState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorStringLiteralEClass, BehaviorStringLiteral.class, "BehaviorStringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(behaviorTimeEClass, BehaviorTime.class, "BehaviorTime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBehaviorTime_IntegerValue(), this.getIntegerValue(), null, "integerValue", null, 1, 1, BehaviorTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorTime_Unit(), theAadl2Package.getUnitLiteral(), null, "unit", null, 0, 1, BehaviorTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorTransitionEClass, BehaviorTransition.class, "BehaviorTransition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBehaviorTransition_SourceState(), this.getBehaviorState(), this.getBehaviorState_OutgoingTransitions(), "sourceState", null, 0, 1, BehaviorTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorTransition_Condition(), this.getBehaviorCondition(), null, "condition", null, 0, 1, BehaviorTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorTransition_DestinationState(), this.getBehaviorState(), this.getBehaviorState_IncomingTransitions(), "destinationState", null, 0, 1, BehaviorTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorTransition_ActionBlock(), this.getBehaviorActionBlock(), null, "actionBlock", null, 0, 1, BehaviorTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getBehaviorTransition_Priority(), theAadl2Package.getInteger(), "priority", "-1", 0, 1, BehaviorTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorVariableEClass, BehaviorVariable.class, "BehaviorVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getBehaviorVariable_DataClassifier(), theAadl2Package.getDataClassifier(), null, "dataClassifier", null, 1, 1, BehaviorVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorVariable_OwnedPropertyAssociations(), theAadl2Package.getPropertyAssociation(), null, "ownedPropertyAssociations", null, 0, -1, BehaviorVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getBehaviorVariable_OwnedValueConstant(), this.getValueConstant(), null, "ownedValueConstant", null, 0, 1, BehaviorVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(behaviorVariableHolderEClass, BehaviorVariableHolder.class, "BehaviorVariableHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(behaviorVariableHolderEClass, null, "setVariable", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getBehaviorVariable(), "variable", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(behaviorVariableHolderEClass, this.getBehaviorVariable(), "getBehaviorVariable", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(calledSubprogramHolderEClass, CalledSubprogramHolder.class, "CalledSubprogramHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(classifierFeatureHolderEClass, ClassifierFeatureHolder.class, "ClassifierFeatureHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(classifierFeatureHolderEClass, null, "setClassifierFeature", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getClassifierFeature(), "classifierFeature", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(classifierFeatureHolderEClass, theAadl2Package.getClassifierFeature(), "getClassifierFeature", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(classifierFeaturePropertyReferenceEClass, ClassifierFeaturePropertyReference.class, "ClassifierFeaturePropertyReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getClassifierFeaturePropertyReference_Component(), this.getClassifierFeatureHolder(), null, "component", null, 1, 1, ClassifierFeaturePropertyReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(classifierPropertyReferenceEClass, ClassifierPropertyReference.class, "ClassifierPropertyReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getClassifierPropertyReference_Classifier(), theAadl2Package.getClassifier(), null, "classifier", null, 1, 1, ClassifierPropertyReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(communicationActionEClass, CommunicationAction.class, "CommunicationAction", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(completionRelativeTimeoutEClass, CompletionRelativeTimeout.class, "CompletionRelativeTimeout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(condStatementEClass, CondStatement.class, "CondStatement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getCondStatement_BehaviorActions(), this.getBehaviorActions(), null, "behaviorActions", null, 1, 1, CondStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(dataAccessHolderEClass, DataAccessHolder.class, "DataAccessHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(dataAccessHolderEClass, null, "setDataAccess", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getDataAccess(), "dataAccess", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(dataAccessHolderEClass, theAadl2Package.getDataAccess(), "getDataAccess", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(dataAccessPrototypeHolderEClass, DataAccessPrototypeHolder.class, "DataAccessPrototypeHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(dataComponentReferenceEClass, DataComponentReference.class, "DataComponentReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getDataComponentReference_Data(), this.getDataHolder(), null, "data", null, 2, -1, DataComponentReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(dataHolderEClass, DataHolder.class, "DataHolder", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(dataPortHolderEClass, DataPortHolder.class, "DataPortHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(dataPortHolderEClass, null, "setDataPort", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getDataPort(), "dataPort", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(dataPortHolderEClass, theAadl2Package.getDataPort(), "getDataPort", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(dataSubcomponentHolderEClass, DataSubcomponentHolder.class, "DataSubcomponentHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(dataSubcomponentHolderEClass, null, "setDataSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getDataSubcomponent(), "dataSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(dataSubcomponentHolderEClass, theAadl2Package.getDataSubcomponent(), "getDataSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(dispatchConditionEClass, DispatchCondition.class, "DispatchCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getDispatchCondition_DispatchTriggerCondition(), this.getDispatchTriggerCondition(), null, "dispatchTriggerCondition", null, 0, 1, DispatchCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getDispatchCondition_FrozenPorts(), this.getActualPortHolder(), null, "frozenPorts", null, 0, -1, DispatchCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(dispatchConjunctionEClass, DispatchConjunction.class, "DispatchConjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getDispatchConjunction_DispatchTriggers(), this.getDispatchTrigger(), null, "dispatchTriggers", null, 1, -1, DispatchConjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(dispatchRelativeTimeoutEClass, DispatchRelativeTimeout.class, "DispatchRelativeTimeout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(dispatchTriggerEClass, DispatchTrigger.class, "DispatchTrigger", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(dispatchTriggerConditionEClass, DispatchTriggerCondition.class, "DispatchTriggerCondition", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(dispatchTriggerConditionStopEClass, DispatchTriggerConditionStop.class, "DispatchTriggerConditionStop", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(dispatchTriggerLogicalExpressionEClass, DispatchTriggerLogicalExpression.class, "DispatchTriggerLogicalExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getDispatchTriggerLogicalExpression_DispatchConjunctions(), this.getDispatchConjunction(), null, "dispatchConjunctions", null, 1, -1, DispatchTriggerLogicalExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(elementHolderEClass, ElementHolder.class, "ElementHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getElementHolder_Element(), theAadl2Package.getNamedElement(), null, "element", null, 0, 1, ElementHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(elementValuesEClass, ElementValues.class, "ElementValues", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(elseStatementEClass, ElseStatement.class, "ElseStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(enumLiteralHolderEClass, EnumLiteralHolder.class, "EnumLiteralHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(enumLiteralHolderEClass, null, "setEnumLiteral", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getEnumerationLiteral(), "enumLiteral", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(enumLiteralHolderEClass, theAadl2Package.getEnumerationLiteral(), "getEnumLiteral", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(eventDataPortHolderEClass, EventDataPortHolder.class, "EventDataPortHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(eventDataPortHolderEClass, null, "setEventDataPort", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getEventDataPort(), "eventDataPort", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(eventDataPortHolderEClass, theAadl2Package.getEventDataPort(), "geteventDataPort", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(eventPortHolderEClass, EventPortHolder.class, "EventPortHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(eventPortHolderEClass, null, "setEventPort", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getEventPort(), "eventPort", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(eventPortHolderEClass, theAadl2Package.getEventPort(), "getEventPort", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(executeConditionEClass, ExecuteCondition.class, "ExecuteCondition", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(executionTimeoutCatchEClass, ExecutionTimeoutCatch.class, "ExecutionTimeoutCatch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(factorEClass, Factor.class, "Factor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getFactor_FirstValue(), this.getValue(), null, "firstValue", null, 1, 1, Factor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFactor_SecondValue(), this.getValue(), null, "secondValue", null, 0, 1, Factor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFactor_BinaryNumericOperator(), this.getBinaryNumericOperator(), "binaryNumericOperator", null, 0, 1, Factor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFactor_UnaryNumericOperator(), this.getUnaryNumericOperator(), "unaryNumericOperator", null, 0, 1, Factor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFactor_UnaryBooleanOperator(), this.getUnaryBooleanOperator(), "unaryBooleanOperator", null, 0, 1, Factor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(featureHolderEClass, FeatureHolder.class, "FeatureHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(featureHolderEClass, null, "setFeature", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getFeature(), "feature", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(featureHolderEClass, theAadl2Package.getFeature(), "getFeature", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(featurePrototypeHolderEClass, FeaturePrototypeHolder.class, "FeaturePrototypeHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(forOrForAllStatementEClass, ForOrForAllStatement.class, "ForOrForAllStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getForOrForAllStatement_IteratedValues(), this.getElementValues(), null, "iteratedValues", null, 1, 1, ForOrForAllStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getForOrForAllStatement_ForAll(), this.getBoolean(), "forAll", "false", 0, 1, ForOrForAllStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getForOrForAllStatement_IterativeVariable(), this.getIterativeVariable(), null, "iterativeVariable", null, 1, 1, ForOrForAllStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(groupableElementEClass, GroupableElement.class, "GroupableElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getGroupableElement_GroupHolders(), this.getGroupHolder(), null, "groupHolders", null, 0, -1, GroupableElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(groupHolderEClass, GroupHolder.class, "GroupHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(groupHolderEClass, null, "setGroup", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getNamedElement(), "group", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(groupHolderEClass, theAadl2Package.getNamedElement(), "getGroup", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(groupPrototypeHolderEClass, GroupPrototypeHolder.class, "GroupPrototypeHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getGroupPrototypeHolder_PrototypeBinding(), theAadl2Package.getPrototypeBinding(), null, "prototypeBinding", null, 0, 1, GroupPrototypeHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
op = addEOperation(groupPrototypeHolderEClass, null, "setPrototype", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getPrototype(), "prototype", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(groupPrototypeHolderEClass, theAadl2Package.getPrototype(), "getPrototype", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(ifStatementEClass, IfStatement.class, "IfStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIfStatement_LogicalValueExpression(), this.getValueExpression(), null, "logicalValueExpression", null, 1, 1, IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getIfStatement_Elif(), this.getBoolean(), "elif", "false", 0, 1, IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getIfStatement_ElseStatement(), this.getElseStatement(), null, "elseStatement", null, 0, 1, IfStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(indexableElementEClass, IndexableElement.class, "IndexableElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIndexableElement_ArrayIndexes(), this.getIntegerValue(), null, "arrayIndexes", null, 0, -1, IndexableElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(integerRangeEClass, IntegerRange.class, "IntegerRange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIntegerRange_LowerIntegerValue(), this.getIntegerValue(), null, "lowerIntegerValue", null, 1, 1, IntegerRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getIntegerRange_UpperIntegerValue(), this.getIntegerValue(), null, "upperIntegerValue", null, 1, 1, IntegerRange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(integerValueEClass, IntegerValue.class, "IntegerValue", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(integerValueConstantEClass, IntegerValueConstant.class, "IntegerValueConstant", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(integerValueVariableEClass, IntegerValueVariable.class, "IntegerValueVariable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(iterativeVariableEClass, IterativeVariable.class, "IterativeVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIterativeVariable_DataClassifier(), theAadl2Package.getDataClassifier(), null, "dataClassifier", null, 0, 1, IterativeVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(iterativeVariableHolderEClass, IterativeVariableHolder.class, "IterativeVariableHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(iterativeVariableHolderEClass, null, "setIterativeVariable", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getIterativeVariable(), "itV", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(iterativeVariableHolderEClass, this.getIterativeVariable(), "getIterativeVariable", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(literalEClass, Literal.class, "Literal", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(lockActionEClass, LockAction.class, "LockAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(loopStatementEClass, LoopStatement.class, "LoopStatement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(lowerBoundEClass, LowerBound.class, "LowerBound", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(numericLiteralEClass, NumericLiteral.class, "NumericLiteral", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(otherwiseEClass, Otherwise.class, "Otherwise", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(parameterHolderEClass, ParameterHolder.class, "ParameterHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(parameterHolderEClass, null, "setParameter", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getParameter(), "parameter", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(parameterHolderEClass, theAadl2Package.getParameter(), "getParameter", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(parameterLabelEClass, ParameterLabel.class, "ParameterLabel", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(portCountValueEClass, PortCountValue.class, "PortCountValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(portDequeueActionEClass, PortDequeueAction.class, "PortDequeueAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPortDequeueAction_Port(), this.getActualPortHolder(), null, "port", null, 1, 1, PortDequeueAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getPortDequeueAction_Target(), this.getTarget(), null, "target", null, 0, 1, PortDequeueAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(portDequeueValueEClass, PortDequeueValue.class, "PortDequeueValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(portFreezeActionEClass, PortFreezeAction.class, "PortFreezeAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(portFreshValueEClass, PortFreshValue.class, "PortFreshValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(portHolderEClass, PortHolder.class, "PortHolder", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(portPrototypeHolderEClass, PortPrototypeHolder.class, "PortPrototypeHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(portSendActionEClass, PortSendAction.class, "PortSendAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPortSendAction_Port(), this.getActualPortHolder(), null, "port", null, 0, 1, PortSendAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getPortSendAction_ValueExpression(), this.getValueExpression(), null, "valueExpression", null, 0, 1, PortSendAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(propertyAssociationHolderEClass, PropertyAssociationHolder.class, "PropertyAssociationHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(propertyAssociationHolderEClass, null, "setPropertyAssociation", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getPropertyAssociation(), "propertyAssociation", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(propertyAssociationHolderEClass, theAadl2Package.getPropertyAssociation(), "getPropertyAssociation", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(propertyElementHolderEClass, PropertyElementHolder.class, "PropertyElementHolder", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPropertyElementHolder_Element(), theAadl2Package.getElement(), null, "element", null, 1, 1, PropertyElementHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(propertyExpressionHolderEClass, PropertyExpressionHolder.class, "PropertyExpressionHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(propertyExpressionHolderEClass, null, "setPropertyExpression", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getPropertyExpression(), "propertyExpression", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(propertyExpressionHolderEClass, theAadl2Package.getPropertyExpression(), "getPropertyExpression", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(propertyNameFieldEClass, PropertyNameField.class, "PropertyNameField", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(propertyNameHolderEClass, PropertyNameHolder.class, "PropertyNameHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPropertyNameHolder_Property(), this.getPropertyElementHolder(), null, "property", null, 1, 1, PropertyNameHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getPropertyNameHolder_Field(), this.getPropertyNameField(), null, "field", null, 0, 1, PropertyNameHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(propertyReferenceEClass, PropertyReference.class, "PropertyReference", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPropertyReference_Properties(), this.getPropertyNameHolder(), null, "properties", null, 1, -1, PropertyReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(propertySetPropertyReferenceEClass, PropertySetPropertyReference.class, "PropertySetPropertyReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPropertySetPropertyReference_PropertySet(), theAadl2Package.getPropertySet(), null, "propertySet", null, 0, 1, PropertySetPropertyReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(propertyTypeHolderEClass, PropertyTypeHolder.class, "PropertyTypeHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(propertyTypeHolderEClass, null, "setPropertyType", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getPropertyType(), "propertyType", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(propertyTypeHolderEClass, theAadl2Package.getPropertyType(), "getPropertyType", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(prototypeHolderEClass, PrototypeHolder.class, "PrototypeHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPrototypeHolder_PrototypeBinding(), theAadl2Package.getPrototypeBinding(), null, "prototypeBinding", null, 0, 1, PrototypeHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
op = addEOperation(prototypeHolderEClass, null, "setPrototype", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getPrototype(), "prototype", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(prototypeHolderEClass, theAadl2Package.getPrototype(), "getPrototype", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(relationEClass, Relation.class, "Relation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getRelation_FirstExpression(), this.getSimpleExpression(), null, "firstExpression", null, 1, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getRelation_SecondExpression(), this.getSimpleExpression(), null, "secondExpression", null, 0, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getRelation_RelationalOperator(), this.getRelationalOperator(), "relationalOperator", null, 0, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(sharedDataActionEClass, SharedDataAction.class, "SharedDataAction", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getSharedDataAction_DataAccess(), this.getDataAccessHolder(), null, "dataAccess", null, 0, 1, SharedDataAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(simpleExpressionEClass, SimpleExpression.class, "SimpleExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getSimpleExpression_UnaryAddingOperator(), this.getUnaryAddingOperator(), "unaryAddingOperator", null, 0, 1, SimpleExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getSimpleExpression_Terms(), this.getTerm(), null, "terms", null, 1, -1, SimpleExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getSimpleExpression_BinaryAddingOperators(), this.getBinaryAddingOperator(), "binaryAddingOperators", null, 0, -1, SimpleExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(structUnionElementEClass, StructUnionElement.class, "StructUnionElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getStructUnionElement_DataClassifier(), theAadl2Package.getDataClassifier(), null, "dataClassifier", null, 1, 1, StructUnionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(structUnionElementHolderEClass, StructUnionElementHolder.class, "StructUnionElementHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getStructUnionElementHolder_StructUnionElement(), this.getStructUnionElement(), null, "structUnionElement", null, 1, 1, StructUnionElementHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(subcomponentHolderEClass, SubcomponentHolder.class, "SubcomponentHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(subcomponentHolderEClass, null, "setSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getSubcomponent(), "subcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(subcomponentHolderEClass, theAadl2Package.getSubcomponent(), "getSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(subprogramAccessHolderEClass, SubprogramAccessHolder.class, "SubprogramAccessHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(subprogramAccessHolderEClass, null, "setSubprogramAccess", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getSubprogramAccess(), "subprogramAccess", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(subprogramAccessHolderEClass, theAadl2Package.getSubprogramAccess(), "getSubprogramAccess", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(subprogramCallActionEClass, SubprogramCallAction.class, "SubprogramCallAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getSubprogramCallAction_Subprogram(), this.getCalledSubprogramHolder(), null, "subprogram", null, 1, 1, SubprogramCallAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getSubprogramCallAction_ParameterLabels(), this.getParameterLabel(), null, "parameterLabels", null, 0, -1, SubprogramCallAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getSubprogramCallAction_Proxy(), this.getSubprogramHolderProxy(), null, "proxy", null, 0, 1, SubprogramCallAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(subprogramHolderEClass, SubprogramHolder.class, "SubprogramHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(subprogramHolderEClass, null, "setSubprogram", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getSubprogram(), "subprogram", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(subprogramHolderEClass, theAadl2Package.getSubprogram(), "getSubprogram", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(subprogramHolderProxyEClass, SubprogramHolderProxy.class, "SubprogramHolderProxy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(subprogramPrototypeHolderEClass, SubprogramPrototypeHolder.class, "SubprogramPrototypeHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(subprogramSubcomponentHolderEClass, SubprogramSubcomponentHolder.class, "SubprogramSubcomponentHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(subprogramSubcomponentHolderEClass, null, "setSubprogramSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theAadl2Package.getSubprogramSubcomponent(), "subprogramSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(subprogramSubcomponentHolderEClass, theAadl2Package.getSubprogramSubcomponent(), "getSubprogramSubcomponent", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(targetEClass, Target.class, "Target", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(termEClass, Term.class, "Term", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTerm_Factors(), this.getFactor(), null, "factors", null, 1, -1, Term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getTerm_MultiplyingOperators(), this.getMultiplyingOperator(), "multiplyingOperators", null, 0, -1, Term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(timedActionEClass, TimedAction.class, "TimedAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTimedAction_LowerTime(), this.getBehaviorTime(), null, "lowerTime", null, 1, 1, TimedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getTimedAction_UpperTime(), this.getBehaviorTime(), null, "upperTime", null, 0, 1, TimedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getTimedAction_ProcessorClassifier(), theAadl2Package.getProcessorClassifier(), null, "processorClassifier", null, 0, -1, TimedAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(unlockActionEClass, UnlockAction.class, "UnlockAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(upperBoundEClass, UpperBound.class, "UpperBound", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(valueEClass, Value.class, "Value", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(valueConstantEClass, ValueConstant.class, "ValueConstant", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(valueExpressionEClass, ValueExpression.class, "ValueExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getValueExpression_Relations(), this.getRelation(), null, "relations", null, 0, -1, ValueExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getValueExpression_LogicalOperators(), this.getLogicalOperator(), "logicalOperators", null, 0, -1, ValueExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(valueVariableEClass, ValueVariable.class, "ValueVariable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(whileOrDoUntilStatementEClass, WhileOrDoUntilStatement.class, "WhileOrDoUntilStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getWhileOrDoUntilStatement_LogicalValueExpression(), this.getValueExpression(), null, "logicalValueExpression", null, 1, 1, WhileOrDoUntilStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getWhileOrDoUntilStatement_DoUntil(), this.getBoolean(), "doUntil", "false", 0, 1, WhileOrDoUntilStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(modeSwitchTriggerLogicalExpressionEClass, ModeSwitchTriggerLogicalExpression.class, "ModeSwitchTriggerLogicalExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getModeSwitchTriggerLogicalExpression_ModeSwitchConjunctions(), this.getModeSwitchConjunction(), null, "modeSwitchConjunctions", null, 1, -1, ModeSwitchTriggerLogicalExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(modeSwitchTriggerConditionEClass, ModeSwitchTriggerCondition.class, "ModeSwitchTriggerCondition", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(modeSwitchConjunctionEClass, ModeSwitchConjunction.class, "ModeSwitchConjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getModeSwitchConjunction_ModeSwitchTriggers(), this.getModeSwitchTrigger(), null, "modeSwitchTriggers", null, 1, -1, ModeSwitchConjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(modeSwitchTriggerEClass, ModeSwitchTrigger.class, "ModeSwitchTrigger", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
// Initialize enums and add enum literals
initEEnum(behaviorFeatureTypeEEnum, BehaviorFeatureType.class, "BehaviorFeatureType");
addEEnumLiteral(behaviorFeatureTypeEEnum, BehaviorFeatureType.NONE);
addEEnumLiteral(behaviorFeatureTypeEEnum, BehaviorFeatureType.BEHAVIOR_VARIABLE);
addEEnumLiteral(behaviorFeatureTypeEEnum, BehaviorFeatureType.ITERATIVE_VARIABLE);
initEEnum(binaryAddingOperatorEEnum, BinaryAddingOperator.class, "BinaryAddingOperator");
addEEnumLiteral(binaryAddingOperatorEEnum, BinaryAddingOperator.NONE);
addEEnumLiteral(binaryAddingOperatorEEnum, BinaryAddingOperator.PLUS);
addEEnumLiteral(binaryAddingOperatorEEnum, BinaryAddingOperator.MINUS);
initEEnum(binaryNumericOperatorEEnum, BinaryNumericOperator.class, "BinaryNumericOperator");
addEEnumLiteral(binaryNumericOperatorEEnum, BinaryNumericOperator.NONE);
addEEnumLiteral(binaryNumericOperatorEEnum, BinaryNumericOperator.MULTIPLY_MULTIPLY);
initEEnum(dataRepresentationEEnum, DataRepresentation.class, "DataRepresentation");
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.UNKNOWN);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.ARRAY);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.BOOLEAN);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.CHARACTER);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.ENUM);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.FIXED);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.FLOAT);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.INTEGER);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.STRING);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.STRUCT);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.UNION);
addEEnumLiteral(dataRepresentationEEnum, DataRepresentation.ENUM_LITERAL);
initEEnum(featureTypeEEnum, FeatureType.class, "FeatureType");
addEEnumLiteral(featureTypeEEnum, FeatureType.NONE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_DATA_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_DATA_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_DATA_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_EVENT_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_EVENT_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_EVENT_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_EVENT_DATA_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_EVENT_DATA_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_EVENT_DATA_PORT);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_SUBPROGRAM_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_SUBPROGRAM_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_SUBPROGRAM_GROUP_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_SUBPROGRAM_GROUP_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.SUBPROGRAM_SUBCOMPONENT);
addEEnumLiteral(featureTypeEEnum, FeatureType.SUBPROGRAM_CLASSIFIER);
addEEnumLiteral(featureTypeEEnum, FeatureType.SUBPROGRAM_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.COMPONENT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.COMPONENT_PROTOTYPE_BINDING);
addEEnumLiteral(featureTypeEEnum, FeatureType.FEATURE_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.FEATURE_PROTOTYPE_BINDING);
addEEnumLiteral(featureTypeEEnum, FeatureType.FEATURE_GROUP_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.FEATURE_GROUP_PROTOTYPE_BINDING);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_DATA_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_DATA_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.DATA_SUBCOMPONENT);
addEEnumLiteral(featureTypeEEnum, FeatureType.DATA_CLASSIFIER);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_PARAMETER);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_PARAMETER);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_PARAMETER);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROPERTY_CONSTANT);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROPERTY_VALUE);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_BUS_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_BUS_ACCESS);
addEEnumLiteral(featureTypeEEnum, FeatureType.FEATURE_GROUP);
addEEnumLiteral(featureTypeEEnum, FeatureType.CLASSIFIER_VALUE);
addEEnumLiteral(featureTypeEEnum, FeatureType.ABSTRACT_FEATURE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_FEATURE_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_FEATURE_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_FEATURE_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.THREAD_GROUP);
addEEnumLiteral(featureTypeEEnum, FeatureType.SUBPROGRAM_GROUP);
addEEnumLiteral(featureTypeEEnum, FeatureType.SUBPROGRAM_GROUP_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.THREAD_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.THREAD_GROUP_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_DATA_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_DATA_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_DATA_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_EVENT_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_EVENT_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_EVENT_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_EVENT_DATA_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.OUT_EVENT_DATA_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.IN_OUT_EVENT_DATA_PORT_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_SUBPROGRAM_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_SUBPROGRAM_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_SUBPROGRAM_GROUP_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_SUBPROGRAM_GROUP_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_DATA_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_DATA_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROVIDES_BUS_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.REQUIRES_BUS_ACCESS_PROTOTYPE);
addEEnumLiteral(featureTypeEEnum, FeatureType.SYSTEM_SUBCOMPONENT);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROCESSOR_CLASSIFIER);
addEEnumLiteral(featureTypeEEnum, FeatureType.PROCESS_CLASSIFIER);
initEEnum(logicalOperatorEEnum, LogicalOperator.class, "LogicalOperator");
addEEnumLiteral(logicalOperatorEEnum, LogicalOperator.NONE);
addEEnumLiteral(logicalOperatorEEnum, LogicalOperator.AND);
addEEnumLiteral(logicalOperatorEEnum, LogicalOperator.OR);
addEEnumLiteral(logicalOperatorEEnum, LogicalOperator.XOR);
initEEnum(multiplyingOperatorEEnum, MultiplyingOperator.class, "MultiplyingOperator");
addEEnumLiteral(multiplyingOperatorEEnum, MultiplyingOperator.NONE);
addEEnumLiteral(multiplyingOperatorEEnum, MultiplyingOperator.MULTIPLY);
addEEnumLiteral(multiplyingOperatorEEnum, MultiplyingOperator.DIVIDE);
addEEnumLiteral(multiplyingOperatorEEnum, MultiplyingOperator.MOD);
addEEnumLiteral(multiplyingOperatorEEnum, MultiplyingOperator.REM);
initEEnum(relationalOperatorEEnum, RelationalOperator.class, "RelationalOperator");
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator.NONE);
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator.EQUAL);
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator.NOT_EQUAL);
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator.LESS_THAN);
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator.LESS_OR_EQUAL_THAN);
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator.GREATER_THAN);
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator.GREATER_OR_EQUAL_THAN);
initEEnum(unaryAddingOperatorEEnum, UnaryAddingOperator.class, "UnaryAddingOperator");
addEEnumLiteral(unaryAddingOperatorEEnum, UnaryAddingOperator.NONE);
addEEnumLiteral(unaryAddingOperatorEEnum, UnaryAddingOperator.PLUS);
addEEnumLiteral(unaryAddingOperatorEEnum, UnaryAddingOperator.MINUS);
initEEnum(unaryBooleanOperatorEEnum, UnaryBooleanOperator.class, "UnaryBooleanOperator");
addEEnumLiteral(unaryBooleanOperatorEEnum, UnaryBooleanOperator.NONE);
addEEnumLiteral(unaryBooleanOperatorEEnum, UnaryBooleanOperator.NOT);
initEEnum(unaryNumericOperatorEEnum, UnaryNumericOperator.class, "UnaryNumericOperator");
addEEnumLiteral(unaryNumericOperatorEEnum, UnaryNumericOperator.NONE);
addEEnumLiteral(unaryNumericOperatorEEnum, UnaryNumericOperator.ABS);
// Initialize data types
initEDataType(booleanEDataType, boolean.class, "Boolean", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(integerEDataType, int.class, "Integer", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(realEDataType, double.class, "Real", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(stringEDataType, String.class, "String", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
// Create resource
createResource(eNS_URI);
// Create annotations
// http://www.topcased.org/documentation
createDocumentationAnnotations();
// Documentation
createDocumentation_1Annotations();
// documentation
createDocumentation_2Annotations();
}
Aggregations