/*******************************************************************************
* Copyright (c) 2006-2012
* Software Technology Group, Dresden University of Technology
* DevBoost GmbH, Berlin, Amtsgericht Charlottenburg, HRB 140026
*
* 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:
* Software Technology Group - TU Dresden, Germany;
* DevBoost GmbH - Berlin, Germany
* - initial API and implementation
******************************************************************************/
/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.oasisopen.names.tc.opendocument.xmlns.table.impl;
import java.util.Collection;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.eclipse.emf.ecore.util.BasicFeatureMap;
import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.util.InternalEList;
import org.oasisopen.names.tc.opendocument.xmlns.dr3d.SceneType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.CaptionType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.CircleType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.ConnectorType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.ControlType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.CustomShapeType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.EllipseType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.FrameType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.GType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.LineType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.MeasureType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.PageThumbnailType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.PathType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.PolygonType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.PolylineType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.RectType;
import org.oasisopen.names.tc.opendocument.xmlns.drawing.RegularPolygonType;
import org.oasisopen.names.tc.opendocument.xmlns.table.ShapesType;
import org.oasisopen.names.tc.opendocument.xmlns.table.TablePackage;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Shapes Type</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getShape <em>Shape</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getRect <em>Rect</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getLine <em>Line</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getPolyline <em>Polyline</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getPolygon <em>Polygon</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getRegularPolygon <em>Regular Polygon</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getPath <em>Path</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getCircle <em>Circle</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getEllipse <em>Ellipse</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getG <em>G</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getPageThumbnail <em>Page Thumbnail</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getFrame <em>Frame</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getMeasure <em>Measure</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getCaption <em>Caption</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getConnector <em>Connector</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getControl <em>Control</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getScene <em>Scene</em>}</li>
* <li>{@link org.oasisopen.names.tc.opendocument.xmlns.table.impl.ShapesTypeImpl#getCustomShape <em>Custom Shape</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class ShapesTypeImpl extends EObjectImpl implements ShapesType {
/**
* The cached value of the '{@link #getShape() <em>Shape</em>}' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getShape()
* @generated
* @ordered
*/
protected FeatureMap shape;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ShapesTypeImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return TablePackage.eINSTANCE.getShapesType();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public FeatureMap getShape() {
if (shape == null) {
shape = new BasicFeatureMap(this, TablePackage.SHAPES_TYPE__SHAPE);
}
return shape;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<RectType> getRect() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Rect());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<LineType> getLine() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Line());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<PolylineType> getPolyline() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Polyline());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<PolygonType> getPolygon() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Polygon());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<RegularPolygonType> getRegularPolygon() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_RegularPolygon());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<PathType> getPath() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Path());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<CircleType> getCircle() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Circle());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<EllipseType> getEllipse() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Ellipse());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<GType> getG() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_G());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<PageThumbnailType> getPageThumbnail() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_PageThumbnail());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<FrameType> getFrame() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Frame());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<MeasureType> getMeasure() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Measure());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<CaptionType> getCaption() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Caption());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ConnectorType> getConnector() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Connector());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ControlType> getControl() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Control());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<SceneType> getScene() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_Scene());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<CustomShapeType> getCustomShape() {
return getShape().list(TablePackage.eINSTANCE.getShapesType_CustomShape());
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case TablePackage.SHAPES_TYPE__SHAPE:
return ((InternalEList<?>)getShape()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__RECT:
return ((InternalEList<?>)getRect()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__LINE:
return ((InternalEList<?>)getLine()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__POLYLINE:
return ((InternalEList<?>)getPolyline()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__POLYGON:
return ((InternalEList<?>)getPolygon()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__REGULAR_POLYGON:
return ((InternalEList<?>)getRegularPolygon()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__PATH:
return ((InternalEList<?>)getPath()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__CIRCLE:
return ((InternalEList<?>)getCircle()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__ELLIPSE:
return ((InternalEList<?>)getEllipse()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__G:
return ((InternalEList<?>)getG()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__PAGE_THUMBNAIL:
return ((InternalEList<?>)getPageThumbnail()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__FRAME:
return ((InternalEList<?>)getFrame()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__MEASURE:
return ((InternalEList<?>)getMeasure()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__CAPTION:
return ((InternalEList<?>)getCaption()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__CONNECTOR:
return ((InternalEList<?>)getConnector()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__CONTROL:
return ((InternalEList<?>)getControl()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__SCENE:
return ((InternalEList<?>)getScene()).basicRemove(otherEnd, msgs);
case TablePackage.SHAPES_TYPE__CUSTOM_SHAPE:
return ((InternalEList<?>)getCustomShape()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case TablePackage.SHAPES_TYPE__SHAPE:
if (coreType) return getShape();
return ((FeatureMap.Internal)getShape()).getWrapper();
case TablePackage.SHAPES_TYPE__RECT:
return getRect();
case TablePackage.SHAPES_TYPE__LINE:
return getLine();
case TablePackage.SHAPES_TYPE__POLYLINE:
return getPolyline();
case TablePackage.SHAPES_TYPE__POLYGON:
return getPolygon();
case TablePackage.SHAPES_TYPE__REGULAR_POLYGON:
return getRegularPolygon();
case TablePackage.SHAPES_TYPE__PATH:
return getPath();
case TablePackage.SHAPES_TYPE__CIRCLE:
return getCircle();
case TablePackage.SHAPES_TYPE__ELLIPSE:
return getEllipse();
case TablePackage.SHAPES_TYPE__G:
return getG();
case TablePackage.SHAPES_TYPE__PAGE_THUMBNAIL:
return getPageThumbnail();
case TablePackage.SHAPES_TYPE__FRAME:
return getFrame();
case TablePackage.SHAPES_TYPE__MEASURE:
return getMeasure();
case TablePackage.SHAPES_TYPE__CAPTION:
return getCaption();
case TablePackage.SHAPES_TYPE__CONNECTOR:
return getConnector();
case TablePackage.SHAPES_TYPE__CONTROL:
return getControl();
case TablePackage.SHAPES_TYPE__SCENE:
return getScene();
case TablePackage.SHAPES_TYPE__CUSTOM_SHAPE:
return getCustomShape();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case TablePackage.SHAPES_TYPE__SHAPE:
((FeatureMap.Internal)getShape()).set(newValue);
return;
case TablePackage.SHAPES_TYPE__RECT:
getRect().clear();
getRect().addAll((Collection<? extends RectType>)newValue);
return;
case TablePackage.SHAPES_TYPE__LINE:
getLine().clear();
getLine().addAll((Collection<? extends LineType>)newValue);
return;
case TablePackage.SHAPES_TYPE__POLYLINE:
getPolyline().clear();
getPolyline().addAll((Collection<? extends PolylineType>)newValue);
return;
case TablePackage.SHAPES_TYPE__POLYGON:
getPolygon().clear();
getPolygon().addAll((Collection<? extends PolygonType>)newValue);
return;
case TablePackage.SHAPES_TYPE__REGULAR_POLYGON:
getRegularPolygon().clear();
getRegularPolygon().addAll((Collection<? extends RegularPolygonType>)newValue);
return;
case TablePackage.SHAPES_TYPE__PATH:
getPath().clear();
getPath().addAll((Collection<? extends PathType>)newValue);
return;
case TablePackage.SHAPES_TYPE__CIRCLE:
getCircle().clear();
getCircle().addAll((Collection<? extends CircleType>)newValue);
return;
case TablePackage.SHAPES_TYPE__ELLIPSE:
getEllipse().clear();
getEllipse().addAll((Collection<? extends EllipseType>)newValue);
return;
case TablePackage.SHAPES_TYPE__G:
getG().clear();
getG().addAll((Collection<? extends GType>)newValue);
return;
case TablePackage.SHAPES_TYPE__PAGE_THUMBNAIL:
getPageThumbnail().clear();
getPageThumbnail().addAll((Collection<? extends PageThumbnailType>)newValue);
return;
case TablePackage.SHAPES_TYPE__FRAME:
getFrame().clear();
getFrame().addAll((Collection<? extends FrameType>)newValue);
return;
case TablePackage.SHAPES_TYPE__MEASURE:
getMeasure().clear();
getMeasure().addAll((Collection<? extends MeasureType>)newValue);
return;
case TablePackage.SHAPES_TYPE__CAPTION:
getCaption().clear();
getCaption().addAll((Collection<? extends CaptionType>)newValue);
return;
case TablePackage.SHAPES_TYPE__CONNECTOR:
getConnector().clear();
getConnector().addAll((Collection<? extends ConnectorType>)newValue);
return;
case TablePackage.SHAPES_TYPE__CONTROL:
getControl().clear();
getControl().addAll((Collection<? extends ControlType>)newValue);
return;
case TablePackage.SHAPES_TYPE__SCENE:
getScene().clear();
getScene().addAll((Collection<? extends SceneType>)newValue);
return;
case TablePackage.SHAPES_TYPE__CUSTOM_SHAPE:
getCustomShape().clear();
getCustomShape().addAll((Collection<? extends CustomShapeType>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case TablePackage.SHAPES_TYPE__SHAPE:
getShape().clear();
return;
case TablePackage.SHAPES_TYPE__RECT:
getRect().clear();
return;
case TablePackage.SHAPES_TYPE__LINE:
getLine().clear();
return;
case TablePackage.SHAPES_TYPE__POLYLINE:
getPolyline().clear();
return;
case TablePackage.SHAPES_TYPE__POLYGON:
getPolygon().clear();
return;
case TablePackage.SHAPES_TYPE__REGULAR_POLYGON:
getRegularPolygon().clear();
return;
case TablePackage.SHAPES_TYPE__PATH:
getPath().clear();
return;
case TablePackage.SHAPES_TYPE__CIRCLE:
getCircle().clear();
return;
case TablePackage.SHAPES_TYPE__ELLIPSE:
getEllipse().clear();
return;
case TablePackage.SHAPES_TYPE__G:
getG().clear();
return;
case TablePackage.SHAPES_TYPE__PAGE_THUMBNAIL:
getPageThumbnail().clear();
return;
case TablePackage.SHAPES_TYPE__FRAME:
getFrame().clear();
return;
case TablePackage.SHAPES_TYPE__MEASURE:
getMeasure().clear();
return;
case TablePackage.SHAPES_TYPE__CAPTION:
getCaption().clear();
return;
case TablePackage.SHAPES_TYPE__CONNECTOR:
getConnector().clear();
return;
case TablePackage.SHAPES_TYPE__CONTROL:
getControl().clear();
return;
case TablePackage.SHAPES_TYPE__SCENE:
getScene().clear();
return;
case TablePackage.SHAPES_TYPE__CUSTOM_SHAPE:
getCustomShape().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case TablePackage.SHAPES_TYPE__SHAPE:
return shape != null && !shape.isEmpty();
case TablePackage.SHAPES_TYPE__RECT:
return !getRect().isEmpty();
case TablePackage.SHAPES_TYPE__LINE:
return !getLine().isEmpty();
case TablePackage.SHAPES_TYPE__POLYLINE:
return !getPolyline().isEmpty();
case TablePackage.SHAPES_TYPE__POLYGON:
return !getPolygon().isEmpty();
case TablePackage.SHAPES_TYPE__REGULAR_POLYGON:
return !getRegularPolygon().isEmpty();
case TablePackage.SHAPES_TYPE__PATH:
return !getPath().isEmpty();
case TablePackage.SHAPES_TYPE__CIRCLE:
return !getCircle().isEmpty();
case TablePackage.SHAPES_TYPE__ELLIPSE:
return !getEllipse().isEmpty();
case TablePackage.SHAPES_TYPE__G:
return !getG().isEmpty();
case TablePackage.SHAPES_TYPE__PAGE_THUMBNAIL:
return !getPageThumbnail().isEmpty();
case TablePackage.SHAPES_TYPE__FRAME:
return !getFrame().isEmpty();
case TablePackage.SHAPES_TYPE__MEASURE:
return !getMeasure().isEmpty();
case TablePackage.SHAPES_TYPE__CAPTION:
return !getCaption().isEmpty();
case TablePackage.SHAPES_TYPE__CONNECTOR:
return !getConnector().isEmpty();
case TablePackage.SHAPES_TYPE__CONTROL:
return !getControl().isEmpty();
case TablePackage.SHAPES_TYPE__SCENE:
return !getScene().isEmpty();
case TablePackage.SHAPES_TYPE__CUSTOM_SHAPE:
return !getCustomShape().isEmpty();
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (shape: ");
result.append(shape);
result.append(')');
return result.toString();
}
} //ShapesTypeImpl