blob: eed40baaf553c94feb43a7f40bb002dc4c377407 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="C_Cpp" nsURI="http://www.eclipse.org/papyrus/C_Cpp/1" nsPrefix="C_Cpp">
<eClassifiers xsi:type="ecore:EClass" name="Ptr">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&quot;declaration&quot; attribute should only be used, if more than one indirections of pointers (often &quot;**&quot;)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false"
unique="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Include">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An arbitrary string that is added to header and body file. Although primarily intended for manual include directives, it can be used for arbitrary definitions.&#xA;&#x9;&quot;preBody&quot; is added to a C++ body file before automatic include statements, &quot;body&quot; after"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
defaultValueLiteral=""/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="preBody" ordered="false"
eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
defaultValueLiteral=""/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="header" ordered="false"
eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
defaultValueLiteral=""/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ManualGeneration">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Some toolkits require a quite particular way of use. For instance, LTTng requires the use of C (not C++) for the declaration of a trace provider and the header file is read several time with redefined macros. Therefore, the code generator supports a &quot;manual&quot; generation mode, in which primarily the contents of the CppInclude directive is written."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="extensionBody" ordered="false"
lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExternLibrary">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Mark a package as External Library. If this package is used, the associated CDT project will be configured accordingly. Prefix can indicate a common prefix on contained type, typically namespace qualifier"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="includePaths" ordered="false"
unique="false" upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="libPaths" ordered="false"
upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="macros" ordered="false"
upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="libs" ordered="false" upperBound="-1"
eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="includes" ordered="false"
upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="prefix" ordered="false"
eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CppRoot">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="&lt;p>Indicates that this package shoudl be a root package, i.e. its contents should appear on top level folder during generation. Currently not used&lt;/p>&#xA;"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Typedef">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Declare a new type that is based on another type.&#xA;Can be used to define for instance primitive types (like int). Can also be used for function pointers (see wiki)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="definition" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_primitivetype" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//PrimitiveType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EnumStyle">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Enumeration style can be choosen individually on an enumeration or on a package (applying to all elements within)&#xA;The &quot;nearest&quot; Enum style hint has precedence"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Enumeration" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Enumeration"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="classEnum" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DefaultConstructor">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If applied, generate default constructor/destructor (supported by C code generator)"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Delete">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="C++ modifiers that are applied to an operator or constructor.&#xA;Produce for =delete or =default statements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Default">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="C++ modifiers that are applied to an operator or constructor.&#xA;Produce for =delete or =default statements"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
<eLiterals name="private"/>
<eLiterals name="protected" value="1"/>
<eLiterals name="public" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Array">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="definition" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_association" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Const">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Ref">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false"
unique="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="External">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Name to use when this external is referenced as type. If unset, use simple (non-qualified) name"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="incPath" ordered="false"
eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Path to use in include directives when this external type is referenced. If unset, no additional&#xA;include directive is generated for the usage of this type. The latter may be useful if the&#xA;external type is used in conjunctions with others and a single header include provides&#xA;definitions for all required types"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConstInit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="initialisation" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Friend">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_dependency" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Inline">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Virtual">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Visibility">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_generalization" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Generalization"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CppInit">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_enumerationliteral"
ordered="false" unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//EnumerationLiteral"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Template">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Union">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_DataType" ordered="false"
lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="EAccessKind">
<eLiterals name="read"/>
<eLiterals name="write" value="1"/>
<eLiterals name="readWrite" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="EStorageClass">
<eLiterals name="volatile"/>
<eLiterals name="register" value="1"/>
<eLiterals name="extern" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StorageClass">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="storageClass" ordered="false"
unique="false" lowerBound="1" eType="#//EStorageClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Parameter" ordered="false"
eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Volatile">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Variadic">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false"
lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Mutable">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
</eClassifiers>
</ecore:EPackage>