/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2007 Matthias Braeuer (braeuer.matthias@web.de). * * All rights reserved. * * * * This work was done as a project at the Chair for Software Technology, * * Dresden University Of Technology, Germany (http://st.inf.tu-dresden.de). * * It is understood that any modification not identified as such is not * * covered by the preceding statement. * * * * This work is free software; you can redistribute it and/or modify it * * under the terms of the GNU Library General Public License as published * * by the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This work is distributed in the hope that it will be useful, but WITHOUT * * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public * * License for more details. * * * * You should have received a copy of the GNU Library General Public License * * along with this library; if not, you can view it online at * * http://www.fsf.org/licensing/licenses/gpl.html. * * * * To submit a bug report, send a comment, or get the latest news on this * * project, please visit the website: http://dresden-ocl.sourceforge.net. * * For more information on OCL and related projects visit the OCL Portal: * * http://st.inf.tu-dresden.de/ocl * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * $Id$ */ package org.dresdenocl.essentialocl.types.impl; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.emf.common.notify.Notification; 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.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; import org.eclipse.emf.ecore.util.EObjectContainmentEList; import org.eclipse.emf.ecore.util.InternalEList; import org.dresdenocl.essentialocl.types.AnyType; import org.dresdenocl.essentialocl.types.BagType; import org.dresdenocl.essentialocl.types.CollectionType; import org.dresdenocl.essentialocl.types.InvalidType; import org.dresdenocl.essentialocl.types.OclLibrary; import org.dresdenocl.essentialocl.types.OrderedSetType; import org.dresdenocl.essentialocl.types.SequenceType; import org.dresdenocl.essentialocl.types.SetType; import org.dresdenocl.essentialocl.types.TupleType; import org.dresdenocl.essentialocl.types.TypeType; import org.dresdenocl.essentialocl.types.TypesFactory; import org.dresdenocl.essentialocl.types.VoidType; import org.dresdenocl.pivotmodel.PrimitiveType; import org.dresdenocl.pivotmodel.Property; import org.dresdenocl.pivotmodel.Type; import org.dresdenocl.pivotmodel.TypeParameter; /** * <!-- begin-user-doc --> An implementation of the model object '<em><b>Ocl Library</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclBoolean <em>Ocl Boolean</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclString <em>Ocl String</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclInteger <em>Ocl Integer</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclReal <em>Ocl Real</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclAny <em>Ocl Any</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclVoid <em>Ocl Void</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclInvalid <em>Ocl Invalid</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclType <em>Ocl Type</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclCollection <em>Ocl Collection</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclSequence <em>Ocl Sequence</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclBag <em>Ocl Bag</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclSet <em>Ocl Set</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclOrderedSet <em>Ocl Ordered Set</em>}</li> * <li>{@link org.dresdenocl.essentialocl.types.impl.OclLibraryImpl#getOclTuple <em>Ocl Tuple</em>}</li> * </ul> * </p> * * @generated */ public class OclLibraryImpl extends EObjectImpl implements OclLibrary { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(OclLibraryImpl.class); /** * The cached value of the '{@link #getOclBoolean() <em>Ocl Boolean</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclBoolean() * @generated * @ordered */ protected PrimitiveType oclBoolean; /** * The cached value of the '{@link #getOclString() <em>Ocl String</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclString() * @generated * @ordered */ protected PrimitiveType oclString; /** * The cached value of the '{@link #getOclInteger() <em>Ocl Integer</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclInteger() * @generated * @ordered */ protected PrimitiveType oclInteger; /** * The cached value of the '{@link #getOclReal() <em>Ocl Real</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclReal() * @generated * @ordered */ protected PrimitiveType oclReal; /** * The cached value of the '{@link #getOclAny() <em>Ocl Any</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclAny() * @generated * @ordered */ protected AnyType oclAny; /** * The cached value of the '{@link #getOclVoid() <em>Ocl Void</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclVoid() * @generated * @ordered */ protected VoidType oclVoid; /** * The cached value of the '{@link #getOclInvalid() <em>Ocl Invalid</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclInvalid() * @generated * @ordered */ protected InvalidType oclInvalid; /** * The cached value of the '{@link #getOclType() <em>Ocl Type</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclType() * @generated * @ordered */ protected TypeType oclType; /** * The cached value of the '{@link #getOclCollection() <em>Ocl Collection</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclCollection() * @generated * @ordered */ protected CollectionType oclCollection; /** * The cached value of the '{@link #getOclSequence() <em>Ocl Sequence</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclSequence() * @generated * @ordered */ protected SequenceType oclSequence; /** * The cached value of the '{@link #getOclBag() <em>Ocl Bag</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclBag() * @generated * @ordered */ protected BagType oclBag; /** * The cached value of the '{@link #getOclSet() <em>Ocl Set</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclSet() * @generated * @ordered */ protected SetType oclSet; /** * The cached value of the '{@link #getOclOrderedSet() <em>Ocl Ordered Set</em>}' containment reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclOrderedSet() * @generated * @ordered */ protected OrderedSetType oclOrderedSet; /** * The cached value of the '{@link #getOclTuple() <em>Ocl Tuple</em>}' containment reference list. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getOclTuple() * @generated * @ordered */ protected EList<TupleType> oclTuple; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ protected OclLibraryImpl() { super(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public VoidType getOclVoid() { return oclVoid; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclVoid(VoidType newOclVoid, NotificationChain msgs) { VoidType oldOclVoid = oclVoid; oclVoid = newOclVoid; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_VOID, oldOclVoid, newOclVoid); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclVoid(VoidType newOclVoid) { if (newOclVoid != oclVoid) { NotificationChain msgs = null; if (oclVoid != null) msgs = ((InternalEObject) oclVoid).eInverseRemove(this, TypesPackageImpl.VOID_TYPE__OCL_LIBRARY, VoidType.class, msgs); if (newOclVoid != null) msgs = ((InternalEObject) newOclVoid).eInverseAdd(this, TypesPackageImpl.VOID_TYPE__OCL_LIBRARY, VoidType.class, msgs); msgs = basicSetOclVoid(newOclVoid, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_VOID, newOclVoid, newOclVoid)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public AnyType getOclAny() { return oclAny; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclAny(AnyType newOclAny, NotificationChain msgs) { AnyType oldOclAny = oclAny; oclAny = newOclAny; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_ANY, oldOclAny, newOclAny); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclAny(AnyType newOclAny) { if (newOclAny != oclAny) { NotificationChain msgs = null; if (oclAny != null) msgs = ((InternalEObject) oclAny).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_ANY, null, msgs); if (newOclAny != null) msgs = ((InternalEObject) newOclAny).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_ANY, null, msgs); msgs = basicSetOclAny(newOclAny, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_ANY, newOclAny, newOclAny)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public CollectionType getOclCollection() { return oclCollection; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclCollection( CollectionType newOclCollection, NotificationChain msgs) { CollectionType oldOclCollection = oclCollection; oclCollection = newOclCollection; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION, oldOclCollection, newOclCollection); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclCollection(CollectionType newOclCollection) { if (newOclCollection != oclCollection) { NotificationChain msgs = null; if (oclCollection != null) msgs = ((InternalEObject) oclCollection).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION, null, msgs); if (newOclCollection != null) msgs = ((InternalEObject) newOclCollection).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION, null, msgs); msgs = basicSetOclCollection(newOclCollection, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION, newOclCollection, newOclCollection)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public SequenceType getOclSequence() { return oclSequence; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclSequence(SequenceType newOclSequence, NotificationChain msgs) { SequenceType oldOclSequence = oclSequence; oclSequence = newOclSequence; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE, oldOclSequence, newOclSequence); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclSequence(SequenceType newOclSequence) { if (newOclSequence != oclSequence) { NotificationChain msgs = null; if (oclSequence != null) msgs = ((InternalEObject) oclSequence).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE, null, msgs); if (newOclSequence != null) msgs = ((InternalEObject) newOclSequence).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE, null, msgs); msgs = basicSetOclSequence(newOclSequence, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE, newOclSequence, newOclSequence)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public BagType getOclBag() { return oclBag; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclBag(BagType newOclBag, NotificationChain msgs) { BagType oldOclBag = oclBag; oclBag = newOclBag; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_BAG, oldOclBag, newOclBag); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclBag(BagType newOclBag) { if (newOclBag != oclBag) { NotificationChain msgs = null; if (oclBag != null) msgs = ((InternalEObject) oclBag).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_BAG, null, msgs); if (newOclBag != null) msgs = ((InternalEObject) newOclBag).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_BAG, null, msgs); msgs = basicSetOclBag(newOclBag, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_BAG, newOclBag, newOclBag)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public SetType getOclSet() { return oclSet; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclSet(SetType newOclSet, NotificationChain msgs) { SetType oldOclSet = oclSet; oclSet = newOclSet; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_SET, oldOclSet, newOclSet); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclSet(SetType newOclSet) { if (newOclSet != oclSet) { NotificationChain msgs = null; if (oclSet != null) msgs = ((InternalEObject) oclSet).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_SET, null, msgs); if (newOclSet != null) msgs = ((InternalEObject) newOclSet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_SET, null, msgs); msgs = basicSetOclSet(newOclSet, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_SET, newOclSet, newOclSet)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public OrderedSetType getOclOrderedSet() { return oclOrderedSet; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclOrderedSet( OrderedSetType newOclOrderedSet, NotificationChain msgs) { OrderedSetType oldOclOrderedSet = oclOrderedSet; oclOrderedSet = newOclOrderedSet; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET, oldOclOrderedSet, newOclOrderedSet); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclOrderedSet(OrderedSetType newOclOrderedSet) { if (newOclOrderedSet != oclOrderedSet) { NotificationChain msgs = null; if (oclOrderedSet != null) msgs = ((InternalEObject) oclOrderedSet) .eInverseRemove( this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET, null, msgs); if (newOclOrderedSet != null) msgs = ((InternalEObject) newOclOrderedSet) .eInverseAdd( this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET, null, msgs); msgs = basicSetOclOrderedSet(newOclOrderedSet, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET, newOclOrderedSet, newOclOrderedSet)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public List<TupleType> getOclTuple() { if (oclTuple == null) { oclTuple = new EObjectContainmentEList<TupleType>(TupleType.class, this, TypesPackageImpl.OCL_LIBRARY__OCL_TUPLE); } return oclTuple; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public PrimitiveType getOclBoolean() { return oclBoolean; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclBoolean(PrimitiveType newOclBoolean, NotificationChain msgs) { PrimitiveType oldOclBoolean = oclBoolean; oclBoolean = newOclBoolean; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN, oldOclBoolean, newOclBoolean); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclBoolean(PrimitiveType newOclBoolean) { if (newOclBoolean != oclBoolean) { NotificationChain msgs = null; if (oclBoolean != null) msgs = ((InternalEObject) oclBoolean).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN, null, msgs); if (newOclBoolean != null) msgs = ((InternalEObject) newOclBoolean).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN, null, msgs); msgs = basicSetOclBoolean(newOclBoolean, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN, newOclBoolean, newOclBoolean)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public PrimitiveType getOclString() { return oclString; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclString(PrimitiveType newOclString, NotificationChain msgs) { PrimitiveType oldOclString = oclString; oclString = newOclString; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_STRING, oldOclString, newOclString); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclString(PrimitiveType newOclString) { if (newOclString != oclString) { NotificationChain msgs = null; if (oclString != null) msgs = ((InternalEObject) oclString).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_STRING, null, msgs); if (newOclString != null) msgs = ((InternalEObject) newOclString).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_STRING, null, msgs); msgs = basicSetOclString(newOclString, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_STRING, newOclString, newOclString)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public PrimitiveType getOclInteger() { return oclInteger; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclInteger(PrimitiveType newOclInteger, NotificationChain msgs) { PrimitiveType oldOclInteger = oclInteger; oclInteger = newOclInteger; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER, oldOclInteger, newOclInteger); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclInteger(PrimitiveType newOclInteger) { if (newOclInteger != oclInteger) { NotificationChain msgs = null; if (oclInteger != null) msgs = ((InternalEObject) oclInteger).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER, null, msgs); if (newOclInteger != null) msgs = ((InternalEObject) newOclInteger).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER, null, msgs); msgs = basicSetOclInteger(newOclInteger, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER, newOclInteger, newOclInteger)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public PrimitiveType getOclReal() { return oclReal; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclReal(PrimitiveType newOclReal, NotificationChain msgs) { PrimitiveType oldOclReal = oclReal; oclReal = newOclReal; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_REAL, oldOclReal, newOclReal); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclReal(PrimitiveType newOclReal) { if (newOclReal != oclReal) { NotificationChain msgs = null; if (oclReal != null) msgs = ((InternalEObject) oclReal).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_REAL, null, msgs); if (newOclReal != null) msgs = ((InternalEObject) newOclReal).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_REAL, null, msgs); msgs = basicSetOclReal(newOclReal, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_REAL, newOclReal, newOclReal)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public InvalidType getOclInvalid() { return oclInvalid; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclInvalid(InvalidType newOclInvalid, NotificationChain msgs) { InvalidType oldOclInvalid = oclInvalid; oclInvalid = newOclInvalid; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_INVALID, oldOclInvalid, newOclInvalid); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclInvalid(InvalidType newOclInvalid) { if (newOclInvalid != oclInvalid) { NotificationChain msgs = null; if (oclInvalid != null) msgs = ((InternalEObject) oclInvalid).eInverseRemove(this, TypesPackageImpl.INVALID_TYPE__OCL_LIBRARY, InvalidType.class, msgs); if (newOclInvalid != null) msgs = ((InternalEObject) newOclInvalid).eInverseAdd(this, TypesPackageImpl.INVALID_TYPE__OCL_LIBRARY, InvalidType.class, msgs); msgs = basicSetOclInvalid(newOclInvalid, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_INVALID, newOclInvalid, newOclInvalid)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public TypeType getOclType() { return oclType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public NotificationChain basicSetOclType(TypeType newOclType, NotificationChain msgs) { TypeType oldOclType = oclType; oclType = newOclType; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_TYPE, oldOclType, newOclType); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setOclType(TypeType newOclType) { if (newOclType != oclType) { NotificationChain msgs = null; if (oclType != null) msgs = ((InternalEObject) oclType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_TYPE, null, msgs); if (newOclType != null) msgs = ((InternalEObject) newOclType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_TYPE, null, msgs); msgs = basicSetOclType(newOclType, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TypesPackageImpl.OCL_LIBRARY__OCL_TYPE, newOclType, newOclType)); } /** * Creates a new {@link TupleType}. This method delegates to * {@link TupleTypeImpl#make(List)}. If the <code>TupleType</code> is * created new, the reference to the OCL library will be set. * * @generated NOT */ public TupleType makeTupleType(List<Property> atts) { TupleType tupleType = TupleTypeImpl.make(atts); // check if the tuple type has the reference to the OCL library if (tupleType.getOclLibrary() == null) { tupleType.setOclLibrary(this); } return tupleType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public CollectionType getCollectionType(Type elementType) { if (logger.isDebugEnabled()) { logger.debug("getCollectionType(elementType=" + elementType //$NON-NLS-1$ + ") - enter"); //$NON-NLS-1$ } CollectionType collectionType; // precondition check if (elementType == null || elementType.equals(getOclInvalid())) { throw new IllegalArgumentException( "Illegal element type " + elementType); //$NON-NLS-1$ } // get the template type and check it collectionType = getOclCollection(); if (collectionType == null) { throw new IllegalStateException( "The OCL Collection type is missing in the modeled OCL Library"); //$NON-NLS-1$ } // bind the template type and set the element type collectionType = collectionType.bindTypeParameter( new ArrayList<TypeParameter>(collectionType .getOwnedTypeParameter()), Arrays.asList(elementType)); if (logger.isDebugEnabled()) { logger.debug("getCollectionType() - exit - return value=" //$NON-NLS-1$ + collectionType); } return collectionType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public SequenceType getSequenceType(Type elementType) { if (logger.isDebugEnabled()) { logger.debug("getSequenceType(elementType=" + elementType + ") - enter"); //$NON-NLS-1$ //$NON-NLS-2$ } SequenceType sequenceType; // precondition check if (elementType == null || elementType.equals(getOclInvalid())) { throw new IllegalArgumentException( "Illegal element type " + elementType); //$NON-NLS-1$ } // check that the OCL SequenceType has been modeled if (oclSequence == null) { throw new IllegalStateException( "The OCL Sequence type is missing in the modeled OCL Library"); //$NON-NLS-1$ } // bind the template type and set the element type sequenceType = oclSequence.bindTypeParameter( new ArrayList<TypeParameter>(oclSequence .getOwnedTypeParameter()), Arrays.asList(elementType)); if (logger.isDebugEnabled()) { logger.debug("getSequenceType() - exit - return value=" + sequenceType); //$NON-NLS-1$ } return sequenceType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public BagType getBagType(Type elementType) { if (logger.isDebugEnabled()) { logger.debug("getBagType(elementType=" + elementType + ") - enter"); //$NON-NLS-1$ //$NON-NLS-2$ } BagType bagType; // precondition check if (elementType == null || elementType.equals(getOclInvalid())) { throw new IllegalArgumentException( "Illegal element type " + elementType); //$NON-NLS-1$ } // check the the OclBag type has been modelled if (oclBag == null) { throw new IllegalStateException( "The OCL Bag type is missing in the modeled OCL Library"); //$NON-NLS-1$ } // bind the template type and set the element type bagType = oclBag.bindTypeParameter( new ArrayList<TypeParameter>(oclBag.getOwnedTypeParameter()), Arrays.asList(elementType)); if (logger.isDebugEnabled()) { logger.debug("getBagType() - exit - return value=" + bagType); //$NON-NLS-1$ } return bagType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public SetType getSetType(Type elementType) { if (logger.isDebugEnabled()) { logger.debug("getSetType(elementType=" + elementType + ") - enter"); //$NON-NLS-1$ //$NON-NLS-2$ } SetType setType; // precondition check if (elementType == null || elementType.equals(getOclInvalid())) { throw new IllegalArgumentException( "Illegal element type " + elementType); //$NON-NLS-1$ } // check that the SetType has been modeled if (oclSet == null) { throw new IllegalStateException( "The OCL Set type is missing in the modeled OCL Library"); //$NON-NLS-1$ } // bind the template type and set the element type setType = oclSet.bindTypeParameter( new ArrayList<TypeParameter>(oclSet.getOwnedTypeParameter()), Arrays.asList(elementType)); if (logger.isDebugEnabled()) { logger.debug("getSetType() - exit - return value=" + setType); //$NON-NLS-1$ } return setType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public OrderedSetType getOrderedSetType(Type elementType) { if (logger.isDebugEnabled()) { logger.debug("getOrderedSetType(elementType=" + elementType //$NON-NLS-1$ + ") - enter"); //$NON-NLS-1$ } OrderedSetType orderedSetType; // precondition check if (elementType == null || elementType.equals(oclInvalid)) { throw new IllegalArgumentException( "Illegal element type " + elementType); //$NON-NLS-1$ } // check that the OrderedSetType has been modeled if (oclOrderedSet == null) { throw new IllegalStateException( "The OCL OrderedSet type is missing in the modeled OCL Library"); //$NON-NLS-1$ } // bind the template type and set the element type orderedSetType = oclOrderedSet.bindTypeParameter( new ArrayList<TypeParameter>(oclOrderedSet .getOwnedTypeParameter()), Arrays.asList(elementType)); if (logger.isDebugEnabled()) { logger.debug("getOrderedSetType() - exit - return value=" //$NON-NLS-1$ + orderedSetType); } return orderedSetType; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated NOT */ public TypeType getTypeType(Type representedType) { if (logger.isDebugEnabled()) { logger.debug("getTypeType(elementType=" + representedType + ") - enter"); //$NON-NLS-1$ //$NON-NLS-2$ } TypeType typeType = TypesFactory.INSTANCE.createTypeType(); // precondition check if (representedType == null || representedType.equals(getOclInvalid())) { throw new IllegalArgumentException( "Illegal element type " + representedType); //$NON-NLS-1$ } // check that the SetType has been modeled if (typeType == null) { throw new IllegalStateException( "The OCL Type type is missing in the modeled OCL Library"); //$NON-NLS-1$ } // bind the template type and set the element type typeType.setRepresentedType(representedType); if (logger.isDebugEnabled()) { logger.debug("getTypeType() - exit - return value=" + typeType); //$NON-NLS-1$ } return typeType; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case TypesPackageImpl.OCL_LIBRARY__OCL_VOID: if (oclVoid != null) msgs = ((InternalEObject) oclVoid).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_VOID, null, msgs); return basicSetOclVoid((VoidType) otherEnd, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_INVALID: if (oclInvalid != null) msgs = ((InternalEObject) oclInvalid).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TypesPackageImpl.OCL_LIBRARY__OCL_INVALID, null, msgs); return basicSetOclInvalid((InvalidType) otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN: return basicSetOclBoolean(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_STRING: return basicSetOclString(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER: return basicSetOclInteger(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_REAL: return basicSetOclReal(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_ANY: return basicSetOclAny(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_VOID: return basicSetOclVoid(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_INVALID: return basicSetOclInvalid(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_TYPE: return basicSetOclType(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION: return basicSetOclCollection(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE: return basicSetOclSequence(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_BAG: return basicSetOclBag(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_SET: return basicSetOclSet(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET: return basicSetOclOrderedSet(null, msgs); case TypesPackageImpl.OCL_LIBRARY__OCL_TUPLE: return ((InternalEList<?>) getOclTuple()).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 TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN: return getOclBoolean(); case TypesPackageImpl.OCL_LIBRARY__OCL_STRING: return getOclString(); case TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER: return getOclInteger(); case TypesPackageImpl.OCL_LIBRARY__OCL_REAL: return getOclReal(); case TypesPackageImpl.OCL_LIBRARY__OCL_ANY: return getOclAny(); case TypesPackageImpl.OCL_LIBRARY__OCL_VOID: return getOclVoid(); case TypesPackageImpl.OCL_LIBRARY__OCL_INVALID: return getOclInvalid(); case TypesPackageImpl.OCL_LIBRARY__OCL_TYPE: return getOclType(); case TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION: return getOclCollection(); case TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE: return getOclSequence(); case TypesPackageImpl.OCL_LIBRARY__OCL_BAG: return getOclBag(); case TypesPackageImpl.OCL_LIBRARY__OCL_SET: return getOclSet(); case TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET: return getOclOrderedSet(); case TypesPackageImpl.OCL_LIBRARY__OCL_TUPLE: return getOclTuple(); } 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 TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN: setOclBoolean((PrimitiveType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_STRING: setOclString((PrimitiveType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER: setOclInteger((PrimitiveType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_REAL: setOclReal((PrimitiveType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_ANY: setOclAny((AnyType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_VOID: setOclVoid((VoidType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_INVALID: setOclInvalid((InvalidType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_TYPE: setOclType((TypeType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION: setOclCollection((CollectionType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE: setOclSequence((SequenceType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_BAG: setOclBag((BagType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_SET: setOclSet((SetType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET: setOclOrderedSet((OrderedSetType) newValue); return; case TypesPackageImpl.OCL_LIBRARY__OCL_TUPLE: getOclTuple().clear(); getOclTuple().addAll((Collection<? extends TupleType>) newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN: setOclBoolean((PrimitiveType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_STRING: setOclString((PrimitiveType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER: setOclInteger((PrimitiveType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_REAL: setOclReal((PrimitiveType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_ANY: setOclAny((AnyType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_VOID: setOclVoid((VoidType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_INVALID: setOclInvalid((InvalidType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_TYPE: setOclType((TypeType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION: setOclCollection((CollectionType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE: setOclSequence((SequenceType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_BAG: setOclBag((BagType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_SET: setOclSet((SetType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET: setOclOrderedSet((OrderedSetType) null); return; case TypesPackageImpl.OCL_LIBRARY__OCL_TUPLE: getOclTuple().clear(); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case TypesPackageImpl.OCL_LIBRARY__OCL_BOOLEAN: return oclBoolean != null; case TypesPackageImpl.OCL_LIBRARY__OCL_STRING: return oclString != null; case TypesPackageImpl.OCL_LIBRARY__OCL_INTEGER: return oclInteger != null; case TypesPackageImpl.OCL_LIBRARY__OCL_REAL: return oclReal != null; case TypesPackageImpl.OCL_LIBRARY__OCL_ANY: return oclAny != null; case TypesPackageImpl.OCL_LIBRARY__OCL_VOID: return oclVoid != null; case TypesPackageImpl.OCL_LIBRARY__OCL_INVALID: return oclInvalid != null; case TypesPackageImpl.OCL_LIBRARY__OCL_TYPE: return oclType != null; case TypesPackageImpl.OCL_LIBRARY__OCL_COLLECTION: return oclCollection != null; case TypesPackageImpl.OCL_LIBRARY__OCL_SEQUENCE: return oclSequence != null; case TypesPackageImpl.OCL_LIBRARY__OCL_BAG: return oclBag != null; case TypesPackageImpl.OCL_LIBRARY__OCL_SET: return oclSet != null; case TypesPackageImpl.OCL_LIBRARY__OCL_ORDERED_SET: return oclOrderedSet != null; case TypesPackageImpl.OCL_LIBRARY__OCL_TUPLE: return oclTuple != null && !oclTuple.isEmpty(); } return super.eIsSet(featureID); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return TypesPackageImpl.Literals.OCL_LIBRARY; } } // OclLibraryImpl