blob: f9474c64acb121d23be6e8bfc7e5fd5357b0f448 [file] [log] [blame]
/*******************************************************************************
* <copyright>
*
* Copyright (c) 2013, 2013 SAP AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SAP AG - initial API, implementation and documentation
*
* </copyright>
*
*******************************************************************************/
package org.eclipse.fmc.mm.impl;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.fmc.mm.Access;
import org.eclipse.fmc.mm.AccessTarget;
import org.eclipse.fmc.mm.AccessType;
import org.eclipse.fmc.mm.Agent;
import org.eclipse.fmc.mm.Channel;
import org.eclipse.fmc.mm.Comment;
import org.eclipse.fmc.mm.CommentType;
import org.eclipse.fmc.mm.DataflowDirection;
import org.eclipse.fmc.mm.FMCConnection;
import org.eclipse.fmc.mm.FMCElement;
import org.eclipse.fmc.mm.FMCModel;
import org.eclipse.fmc.mm.FMCNode;
import org.eclipse.fmc.mm.FmcFactory;
import org.eclipse.fmc.mm.FmcPackage;
import org.eclipse.fmc.mm.IFMCElementVisitor;
import org.eclipse.fmc.mm.Metadata;
import org.eclipse.fmc.mm.MultiplicityType;
import org.eclipse.fmc.mm.RequestDirection;
import org.eclipse.fmc.mm.Stereotype;
import org.eclipse.fmc.mm.StereotypeValue;
import org.eclipse.fmc.mm.Storage;
import org.eclipse.fmc.mm.StructureVariance;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class FmcPackageImpl extends EPackageImpl implements FmcPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass agentEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass channelEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass storageEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass fmcNodeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass fmcConnectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass accessEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass fmcModelEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass structureVarianceEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass metadataEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass accessTargetEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass commentEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass fmcElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass stereotypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass stereotypeValueEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass ifmcElementVisitorEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum accessTypeEEnum = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum requestDirectionEEnum = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum multiplicityTypeEEnum = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum dataflowDirectionEEnum = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum commentTypeEEnum = null;
/**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
* <p>Note: the correct way to create the package is via the static
* factory method {@link #init init()}, which also performs
* initialization of the package, or returns the registered package,
* if one already exists.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see org.eclipse.fmc.mm.FmcPackage#eNS_URI
* @see #init()
* @generated
*/
private FmcPackageImpl() {
super(eNS_URI, FmcFactory.eINSTANCE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static boolean isInited = false;
/**
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
*
* <p>This method is used to initialize {@link FmcPackage#eINSTANCE} when that field is accessed.
* Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #eNS_URI
* @see #createPackageContents()
* @see #initializePackageContents()
* @generated
*/
public static FmcPackage init() {
if (isInited) return (FmcPackage)EPackage.Registry.INSTANCE.getEPackage(FmcPackage.eNS_URI);
// Obtain or create and register package
FmcPackageImpl theFmcPackage = (FmcPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FmcPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FmcPackageImpl());
isInited = true;
// Initialize simple dependencies
EcorePackage.eINSTANCE.eClass();
// Create package meta-data objects
theFmcPackage.createPackageContents();
// Initialize created meta-data
theFmcPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theFmcPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(FmcPackage.eNS_URI, theFmcPackage);
return theFmcPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAgent() {
return agentEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAgent_AccessConnections() {
return (EReference)agentEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getAgent_Human() {
return (EAttribute)agentEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAgent_SourceChannels() {
return (EReference)agentEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAgent_TargetChannels() {
return (EReference)agentEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getChannel() {
return channelEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getChannel_ChannelType() {
return (EAttribute)channelEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getChannel_Source() {
return (EReference)channelEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getChannel_Target() {
return (EReference)channelEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getChannel_DataflowDirection() {
return (EAttribute)channelEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getChannel_Name() {
return (EAttribute)channelEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getStorage() {
return storageEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getFMCNode() {
return fmcNodeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getFMCNode_Name() {
return (EAttribute)fmcNodeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCNode_Contains() {
return (EReference)fmcNodeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCNode_Container() {
return (EReference)fmcNodeEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getFMCNode_Multiplicity() {
return (EAttribute)fmcNodeEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCNode_NextElement() {
return (EReference)fmcNodeEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getFMCConnection() {
return fmcConnectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAccess() {
return accessEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAccess_Agent() {
return (EReference)accessEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getAccess_Type() {
return (EAttribute)accessEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAccess_Target() {
return (EReference)accessEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getFMCModel() {
return fmcModelEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getFMCModel_Name() {
return (EAttribute)fmcModelEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCModel_Nodes() {
return (EReference)fmcModelEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCModel_Connections() {
return (EReference)fmcModelEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCModel_Comments() {
return (EReference)fmcModelEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getFMCModel_ProfileId() {
return (EAttribute)fmcModelEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getStructureVariance() {
return structureVarianceEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMetadata() {
return metadataEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMetadata_Creator() {
return (EAttribute)metadataEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMetadata_Changer() {
return (EAttribute)metadataEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMetadata_Creationdate() {
return (EAttribute)metadataEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMetadata_Lastchange() {
return (EAttribute)metadataEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMetadata_Version() {
return (EAttribute)metadataEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMetadata_Language() {
return (EAttribute)metadataEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAccessTarget() {
return accessTargetEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAccessTarget_Connections() {
return (EReference)accessTargetEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getComment() {
return commentEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getComment_Content() {
return (EAttribute)commentEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getComment_CommentAssignment() {
return (EReference)commentEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getComment_Type() {
return (EAttribute)commentEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getFMCElement() {
return fmcElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCElement_NodeMetadata() {
return (EReference)fmcElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFMCElement_Stereotypes() {
return (EReference)fmcElementEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getStereotype() {
return stereotypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getStereotype_Id() {
return (EAttribute)stereotypeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getStereotype_Values() {
return (EReference)stereotypeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getStereotypeValue() {
return stereotypeValueEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getStereotypeValue_Id() {
return (EAttribute)stereotypeValueEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getStereotypeValue_ValueString() {
return (EAttribute)stereotypeValueEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getStereotypeValue_ValueBoolean() {
return (EAttribute)stereotypeValueEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getStereotypeValue_ValueInteger() {
return (EAttribute)stereotypeValueEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getIFMCElementVisitor() {
return ifmcElementVisitorEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getAccessType() {
return accessTypeEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getRequestDirection() {
return requestDirectionEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getMultiplicityType() {
return multiplicityTypeEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getDataflowDirection() {
return dataflowDirectionEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getCommentType() {
return commentTypeEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public FmcFactory getFmcFactory() {
return (FmcFactory)getEFactoryInstance();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isCreated = false;
/**
* Creates the meta-model objects for the package. This method is
* guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void createPackageContents() {
if (isCreated) return;
isCreated = true;
// Create classes and their features
agentEClass = createEClass(AGENT);
createEReference(agentEClass, AGENT__ACCESS_CONNECTIONS);
createEAttribute(agentEClass, AGENT__HUMAN);
createEReference(agentEClass, AGENT__SOURCE_CHANNELS);
createEReference(agentEClass, AGENT__TARGET_CHANNELS);
channelEClass = createEClass(CHANNEL);
createEAttribute(channelEClass, CHANNEL__CHANNEL_TYPE);
createEReference(channelEClass, CHANNEL__SOURCE);
createEReference(channelEClass, CHANNEL__TARGET);
createEAttribute(channelEClass, CHANNEL__DATAFLOW_DIRECTION);
createEAttribute(channelEClass, CHANNEL__NAME);
storageEClass = createEClass(STORAGE);
fmcNodeEClass = createEClass(FMC_NODE);
createEAttribute(fmcNodeEClass, FMC_NODE__NAME);
createEReference(fmcNodeEClass, FMC_NODE__CONTAINS);
createEReference(fmcNodeEClass, FMC_NODE__CONTAINER);
createEAttribute(fmcNodeEClass, FMC_NODE__MULTIPLICITY);
createEReference(fmcNodeEClass, FMC_NODE__NEXT_ELEMENT);
fmcConnectionEClass = createEClass(FMC_CONNECTION);
accessEClass = createEClass(ACCESS);
createEReference(accessEClass, ACCESS__AGENT);
createEAttribute(accessEClass, ACCESS__TYPE);
createEReference(accessEClass, ACCESS__TARGET);
fmcModelEClass = createEClass(FMC_MODEL);
createEAttribute(fmcModelEClass, FMC_MODEL__NAME);
createEReference(fmcModelEClass, FMC_MODEL__NODES);
createEReference(fmcModelEClass, FMC_MODEL__CONNECTIONS);
createEReference(fmcModelEClass, FMC_MODEL__COMMENTS);
createEAttribute(fmcModelEClass, FMC_MODEL__PROFILE_ID);
structureVarianceEClass = createEClass(STRUCTURE_VARIANCE);
metadataEClass = createEClass(METADATA);
createEAttribute(metadataEClass, METADATA__CREATOR);
createEAttribute(metadataEClass, METADATA__CHANGER);
createEAttribute(metadataEClass, METADATA__CREATIONDATE);
createEAttribute(metadataEClass, METADATA__LASTCHANGE);
createEAttribute(metadataEClass, METADATA__VERSION);
createEAttribute(metadataEClass, METADATA__LANGUAGE);
accessTargetEClass = createEClass(ACCESS_TARGET);
createEReference(accessTargetEClass, ACCESS_TARGET__CONNECTIONS);
commentEClass = createEClass(COMMENT);
createEAttribute(commentEClass, COMMENT__CONTENT);
createEReference(commentEClass, COMMENT__COMMENT_ASSIGNMENT);
createEAttribute(commentEClass, COMMENT__TYPE);
fmcElementEClass = createEClass(FMC_ELEMENT);
createEReference(fmcElementEClass, FMC_ELEMENT__NODE_METADATA);
createEReference(fmcElementEClass, FMC_ELEMENT__STEREOTYPES);
stereotypeEClass = createEClass(STEREOTYPE);
createEAttribute(stereotypeEClass, STEREOTYPE__ID);
createEReference(stereotypeEClass, STEREOTYPE__VALUES);
stereotypeValueEClass = createEClass(STEREOTYPE_VALUE);
createEAttribute(stereotypeValueEClass, STEREOTYPE_VALUE__ID);
createEAttribute(stereotypeValueEClass, STEREOTYPE_VALUE__VALUE_STRING);
createEAttribute(stereotypeValueEClass, STEREOTYPE_VALUE__VALUE_BOOLEAN);
createEAttribute(stereotypeValueEClass, STEREOTYPE_VALUE__VALUE_INTEGER);
ifmcElementVisitorEClass = createEClass(IFMC_ELEMENT_VISITOR);
// Create enums
accessTypeEEnum = createEEnum(ACCESS_TYPE);
requestDirectionEEnum = createEEnum(REQUEST_DIRECTION);
multiplicityTypeEEnum = createEEnum(MULTIPLICITY_TYPE);
dataflowDirectionEEnum = createEEnum(DATAFLOW_DIRECTION);
commentTypeEEnum = createEEnum(COMMENT_TYPE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isInitialized = false;
/**
* 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
EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
agentEClass.getESuperTypes().add(this.getFMCNode());
channelEClass.getESuperTypes().add(this.getFMCConnection());
storageEClass.getESuperTypes().add(this.getAccessTarget());
fmcNodeEClass.getESuperTypes().add(this.getFMCElement());
fmcConnectionEClass.getESuperTypes().add(this.getFMCElement());
accessEClass.getESuperTypes().add(this.getFMCConnection());
structureVarianceEClass.getESuperTypes().add(this.getAccessTarget());
accessTargetEClass.getESuperTypes().add(this.getFMCNode());
commentEClass.getESuperTypes().add(this.getFMCElement());
// Initialize classes and features; add operations and parameters
initEClass(agentEClass, Agent.class, "Agent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAgent_AccessConnections(), this.getAccess(), this.getAccess_Agent(), "accessConnections", null, 0, -1, Agent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getAgent_Human(), theEcorePackage.getEBoolean(), "human", null, 0, 1, Agent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getAgent_SourceChannels(), this.getChannel(), this.getChannel_Source(), "sourceChannels", null, 0, -1, Agent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getAgent_TargetChannels(), this.getChannel(), this.getChannel_Target(), "targetChannels", null, 0, -1, Agent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(channelEClass, Channel.class, "Channel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getChannel_ChannelType(), this.getRequestDirection(), "channelType", null, 1, 1, Channel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getChannel_Source(), this.getAgent(), this.getAgent_SourceChannels(), "source", null, 1, 1, Channel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getChannel_Target(), this.getAgent(), this.getAgent_TargetChannels(), "target", null, 1, 1, Channel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getChannel_DataflowDirection(), this.getDataflowDirection(), "dataflowDirection", null, 0, 1, Channel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getChannel_Name(), theEcorePackage.getEString(), "name", null, 0, 1, Channel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(storageEClass, Storage.class, "Storage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
addEOperation(storageEClass, ecorePackage.getEBoolean(), "isShared", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(fmcNodeEClass, FMCNode.class, "FMCNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getFMCNode_Name(), ecorePackage.getEString(), "name", null, 0, 1, FMCNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFMCNode_Contains(), this.getFMCNode(), this.getFMCNode_Container(), "contains", null, 0, -1, FMCNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFMCNode_Container(), this.getFMCNode(), this.getFMCNode_Contains(), "container", null, 0, 1, FMCNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFMCNode_Multiplicity(), this.getMultiplicityType(), "multiplicity", null, 0, 1, FMCNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFMCNode_NextElement(), this.getFMCNode(), null, "nextElement", null, 0, 1, FMCNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(fmcNodeEClass, this.getFMCConnection(), "getAllConnections", 0, -1, IS_UNIQUE, !IS_ORDERED);
initEClass(fmcConnectionEClass, FMCConnection.class, "FMCConnection", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(accessEClass, Access.class, "Access", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAccess_Agent(), this.getAgent(), this.getAgent_AccessConnections(), "agent", null, 1, 1, Access.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getAccess_Type(), this.getAccessType(), "type", null, 1, 1, Access.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getAccess_Target(), this.getAccessTarget(), this.getAccessTarget_Connections(), "target", null, 1, 1, Access.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(fmcModelEClass, FMCModel.class, "FMCModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getFMCModel_Name(), ecorePackage.getEString(), "name", null, 0, 1, FMCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFMCModel_Nodes(), this.getFMCNode(), null, "nodes", null, 0, -1, FMCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFMCModel_Connections(), this.getFMCConnection(), null, "connections", null, 0, -1, FMCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFMCModel_Comments(), this.getComment(), null, "comments", null, 0, -1, FMCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFMCModel_ProfileId(), ecorePackage.getEJavaObject(), "profileId", null, 0, -1, FMCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(fmcModelEClass, this.getFMCNode(), "getAllFMCNodes", 0, -1, IS_UNIQUE, IS_ORDERED);
addEOperation(fmcModelEClass, this.getFMCConnection(), "getAllFMCConnections", 0, -1, IS_UNIQUE, IS_ORDERED);
initEClass(structureVarianceEClass, StructureVariance.class, "StructureVariance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(metadataEClass, Metadata.class, "Metadata", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMetadata_Creator(), theEcorePackage.getEString(), "creator", null, 0, 1, Metadata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMetadata_Changer(), theEcorePackage.getEString(), "changer", null, 0, 1, Metadata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMetadata_Creationdate(), theEcorePackage.getEDate(), "creationdate", null, 0, 1, Metadata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMetadata_Lastchange(), theEcorePackage.getEDate(), "lastchange", null, 0, 1, Metadata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMetadata_Version(), theEcorePackage.getELong(), "version", null, 0, 1, Metadata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMetadata_Language(), theEcorePackage.getEString(), "language", null, 0, 1, Metadata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(accessTargetEClass, AccessTarget.class, "AccessTarget", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAccessTarget_Connections(), this.getAccess(), this.getAccess_Target(), "connections", null, 0, -1, AccessTarget.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getComment_Content(), theEcorePackage.getEString(), "content", null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getComment_CommentAssignment(), this.getFMCElement(), null, "commentAssignment", null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getComment_Type(), this.getCommentType(), "type", null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(fmcElementEClass, FMCElement.class, "FMCElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getFMCElement_NodeMetadata(), this.getMetadata(), null, "nodeMetadata", null, 0, 1, FMCElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFMCElement_Stereotypes(), this.getStereotype(), null, "stereotypes", null, 0, -1, FMCElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
EOperation op = addEOperation(fmcElementEClass, ecorePackage.getEJavaObject(), "accept", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getIFMCElementVisitor(), "visitor", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(stereotypeEClass, Stereotype.class, "Stereotype", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getStereotype_Id(), theEcorePackage.getEString(), "id", null, 0, 1, Stereotype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getStereotype_Values(), this.getStereotypeValue(), null, "values", null, 0, -1, Stereotype.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(stereotypeValueEClass, StereotypeValue.class, "StereotypeValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getStereotypeValue_Id(), theEcorePackage.getEString(), "id", null, 0, 1, StereotypeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getStereotypeValue_ValueString(), theEcorePackage.getEString(), "valueString", null, 0, 1, StereotypeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getStereotypeValue_ValueBoolean(), theEcorePackage.getEBoolean(), "valueBoolean", null, 0, 1, StereotypeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getStereotypeValue_ValueInteger(), theEcorePackage.getEInt(), "valueInteger", null, 0, 1, StereotypeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(ifmcElementVisitorEClass, IFMCElementVisitor.class, "IFMCElementVisitor", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(ifmcElementVisitorEClass, ecorePackage.getEJavaObject(), "visit", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getFMCElement(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theEcorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(ifmcElementVisitorEClass, ecorePackage.getEJavaObject(), "visitComment", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getComment(), "comment", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(ifmcElementVisitorEClass, ecorePackage.getEJavaObject(), "visitAccess", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getAccess(), "access", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(ifmcElementVisitorEClass, ecorePackage.getEJavaObject(), "visitChannel", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getChannel(), "channel", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(ifmcElementVisitorEClass, ecorePackage.getEJavaObject(), "visitAgent", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getAgent(), "agent", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(ifmcElementVisitorEClass, ecorePackage.getEJavaObject(), "visitStorage", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getStorage(), "storage", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(ifmcElementVisitorEClass, ecorePackage.getEJavaObject(), "visitStructureVariance", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getStructureVariance(), "structureVariance", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEJavaObject(), "object", 0, 1, IS_UNIQUE, IS_ORDERED);
// Initialize enums and add enum literals
initEEnum(accessTypeEEnum, AccessType.class, "AccessType");
addEEnumLiteral(accessTypeEEnum, AccessType.UNSPECIFIED);
addEEnumLiteral(accessTypeEEnum, AccessType.READ);
addEEnumLiteral(accessTypeEEnum, AccessType.WRITE);
addEEnumLiteral(accessTypeEEnum, AccessType.RW);
initEEnum(requestDirectionEEnum, RequestDirection.class, "RequestDirection");
addEEnumLiteral(requestDirectionEEnum, RequestDirection.UNSPECIFIED);
addEEnumLiteral(requestDirectionEEnum, RequestDirection.REQUEST);
addEEnumLiteral(requestDirectionEEnum, RequestDirection.RESPONSE);
addEEnumLiteral(requestDirectionEEnum, RequestDirection.REQUESTRESPONSE);
initEEnum(multiplicityTypeEEnum, MultiplicityType.class, "MultiplicityType");
addEEnumLiteral(multiplicityTypeEEnum, MultiplicityType.ONE);
addEEnumLiteral(multiplicityTypeEEnum, MultiplicityType.MANY);
initEEnum(dataflowDirectionEEnum, DataflowDirection.class, "DataflowDirection");
addEEnumLiteral(dataflowDirectionEEnum, DataflowDirection.UNSPECIFIED);
addEEnumLiteral(dataflowDirectionEEnum, DataflowDirection.DEFAULT);
addEEnumLiteral(dataflowDirectionEEnum, DataflowDirection.OTHER);
initEEnum(commentTypeEEnum, CommentType.class, "CommentType");
addEEnumLiteral(commentTypeEEnum, CommentType.TEXT);
addEEnumLiteral(commentTypeEEnum, CommentType.IMAGE);
addEEnumLiteral(commentTypeEEnum, CommentType.OTHER);
addEEnumLiteral(commentTypeEEnum, CommentType.BRACE);
addEEnumLiteral(commentTypeEEnum, CommentType.AREABORDER);
addEEnumLiteral(commentTypeEEnum, CommentType.COMMONFEATUREAREA);
addEEnumLiteral(commentTypeEEnum, CommentType.DOTS);
// Create resource
createResource(eNS_URI);
}
} //FmcPackageImpl