<?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="builtintypes" nsURI="http://www.eclipse.org/papyrus/model2doc/core/1.0.0/BuiltInTypes"
    nsPrefix="builtintypes">
  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
    <details key="documentation" value="Common interface to reference a file."/>
  </eAnnotations>
  <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
    <details key="originalName" value="BuiltInTypes"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="AbstractTable" abstract="true">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Abstract class used to represent a Table in the Model2Doc API."/>
    </eAnnotations>
    <eOperations name="getRowsNumber" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This method returns the numbers of rows of the table."/>
        <details key="body" value="return getRows().size();"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getColumnsNumber" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This method returns the number of columns of the table."/>
        <details key="body" value="if (getRowsNumber() > 0) {&#xA;&#x9;// we assume all rows have the same number of cells.&#xA;&#x9;final Row firstRow = getRows().get(0);&#xA;&#x9;if (null != firstRow) {&#xA;&#x9;&#x9;return firstRow.getCells().size();&#xA;&#x9;}&#xA;}&#xA;return 0;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getAllCells" ordered="false" upperBound="-1" eType="#//Cell">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This method returns all Cells as a List. This list concatenates the Cells Row by Row. So for a table with 3 columns and 5 rows.&#xD;&#xA;The 3 first cells will represents the first row, then the cell, 4, 5 and 6, will represents the 2 rows, and so on."/>
        <details key="body" value="final java.util.List&lt;Cell> cells = new  java.util.ArrayList&lt;Cell>();&#xA;for (final Row row : getRows()) {&#xA;&#x9;cells.addAll(row.getCells());&#xA;}&#xA;return  org.eclipse.emf.common.util.ECollections.toEList(cells);&#xA;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="caption" ordered="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The caption of the table."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="rows" ordered="false" upperBound="-1"
        eType="#//Row" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The rows owned by the table."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Row" abstract="true" interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="cells" ordered="false"
        upperBound="-1" eType="#//Cell" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The cells owned by the row."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Cell" abstract="true" interface="true"
      eSuperTypes="../../org.eclipse.papyrus.model2doc.core.styles/model/Styles.ecore#//StyledElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" ordered="false"
        lowerBound="1" eType="#//CellLocation" defaultValueLiteral="BODY">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The location of the cells."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="CellLocation">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="This enumeration allows to define the location of each cell."/>
    </eAnnotations>
    <eLiterals name="CORNER"/>
    <eLiterals name="COLUMN_HEADER" value="1"/>
    <eLiterals name="ROW_HEADER" value="2"/>
    <eLiterals name="BODY" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BasicTable" eSuperTypes="#//AbstractTable">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Default implementation provided for a table."/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BasicRow" eSuperTypes="#//Row">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Default Row implementation."/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TextCell" eSuperTypes="#//Cell">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" ordered="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The text owned by the cells."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AbstractList" abstract="true">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The abstract element to use to create a new List type"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
        eType="#//ListItem" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ListItem" abstract="true" interface="true">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Interface to use to create new kind of ListItem"/>
    </eAnnotations>
    <eOperations name="getLevel" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This operation returns the level of the ListItem. Default value is 1;"/>
        <details key="body" value="int level = 1;&#xA;org.eclipse.emf.ecore.EObject eContainer = eContainer();&#xA;while (eContainer != null &amp;&amp; eContainer instanceof org.eclipse.papyrus.model2doc.core.builtintypes.ListItem) {&#xA;&#x9;level++;&#xA;&#x9;eContainer = eContainer.eContainer();&#xA;}&#xA;return level;"/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="subItems" upperBound="-1"
        eType="#//ListItem" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This property allows us to make items with children called subItems."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TextListItem" eSuperTypes="#//ListItem">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Default implementation for ListItem. This one allows to defines Text for the Item"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" ordered="false" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral=""/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BasicList" eSuperTypes="#//AbstractList">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The default implementation for List"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="IFileReference" abstract="true" interface="true">
    <eOperations name="getFilePath" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Return the path of the referenced file. The path can be a platform:/resource, a platform:/plugin, a path in the current project or a system path (ex: c:\MyDocuments)."/>
      </eAnnotations>
    </eOperations>
    <eOperations name="getFileAccessor" ordered="false" lowerBound="1" eType="#//IInputFileAccessor"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="IInputFileAccessor" instanceClassName="org.eclipse.papyrus.model2doc.core.builtintypes.accessors.IInputFileAccessor">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Returns a file accessor to access to the file path."/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DefaultFileReference" eSuperTypes="#//IFileReference">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Default implementation of IFileReference."/>
    </eAnnotations>
    <eAnnotations source="duplicates">
      <contents xsi:type="ecore:EOperation" name="getFileAccessor" ordered="false"
          lowerBound="1" eType="#//IInputFileAccessor">
        <eAnnotations source="redefines" references="#//IFileReference/getFileAccessor"/>
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return new org.eclipse.papyrus.model2doc.core.builtintypes.internal.accessors.FileReferenceAccessor(this);"/>
        </eAnnotations>
      </contents>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="filePath" ordered="false"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This element allow to reference a file (.txt, odt, ... ). Return the path of the referenced file. The path can be a platform:/resource, a platform:/plugin, a path in the current project or a system path (ex: c:\MyDocuments)."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ImageFormat">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="This enumeration provide the list of format for images"/>
    </eAnnotations>
    <eLiterals name="SVG" literal="svg"/>
    <eLiterals name="PNG" value="1" literal="png"/>
  </eClassifiers>
</ecore:EPackage>
