/**
 */
package org.etsi.mts.tdl.structuredobjectives.impl;

import java.lang.reflect.InvocationTargetException;

import java.util.Collection;

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.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;

import org.etsi.mts.tdl.Comment;
import org.etsi.mts.tdl.TestConfiguration;

import org.etsi.mts.tdl.impl.TestObjectiveImpl;

import org.etsi.mts.tdl.structuredobjectives.Element;
import org.etsi.mts.tdl.structuredobjectives.ExpectedBehaviour;
import org.etsi.mts.tdl.structuredobjectives.FinalConditions;
import org.etsi.mts.tdl.structuredobjectives.InitialConditions;
import org.etsi.mts.tdl.structuredobjectives.PICSReference;
import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage;
import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective;
import org.etsi.mts.tdl.structuredobjectives.Variants;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Structured Test Objective</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * </p>
 * <ul>
 *   <li>{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getConfiguration <em>Configuration</em>}</li>
 *   <li>{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getInitialConditions <em>Initial Conditions</em>}</li>
 *   <li>{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getExpectedBehaviour <em>Expected Behaviour</em>}</li>
 *   <li>{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getFinalConditions <em>Final Conditions</em>}</li>
 *   <li>{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getPicsReference <em>Pics Reference</em>}</li>
 *   <li>{@link org.etsi.mts.tdl.structuredobjectives.impl.StructuredTestObjectiveImpl#getVariants <em>Variants</em>}</li>
 * </ul>
 *
 * @generated
 */
public class StructuredTestObjectiveImpl extends TestObjectiveImpl implements StructuredTestObjective
{
	/**
	 * The cached value of the '{@link #getConfiguration() <em>Configuration</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getConfiguration()
	 * @generated
	 * @ordered
	 */
	protected TestConfiguration configuration;

	/**
	 * The cached value of the '{@link #getInitialConditions() <em>Initial Conditions</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getInitialConditions()
	 * @generated
	 * @ordered
	 */
	protected InitialConditions initialConditions;

	/**
	 * The cached value of the '{@link #getExpectedBehaviour() <em>Expected Behaviour</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getExpectedBehaviour()
	 * @generated
	 * @ordered
	 */
	protected ExpectedBehaviour expectedBehaviour;

	/**
	 * The cached value of the '{@link #getFinalConditions() <em>Final Conditions</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getFinalConditions()
	 * @generated
	 * @ordered
	 */
	protected FinalConditions finalConditions;

	/**
	 * The cached value of the '{@link #getPicsReference() <em>Pics Reference</em>}' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getPicsReference()
	 * @generated
	 * @ordered
	 */
	protected EList<PICSReference> picsReference;

	/**
	 * The cached value of the '{@link #getVariants() <em>Variants</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getVariants()
	 * @generated
	 * @ordered
	 */
	protected Variants variants;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StructuredTestObjectiveImpl()
	{
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass()
	{
		return StructuredObjectivesPackage.Literals.STRUCTURED_TEST_OBJECTIVE;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public TestConfiguration getConfiguration()
	{
		if (configuration != null && configuration.eIsProxy())
		{
			InternalEObject oldConfiguration = (InternalEObject)configuration;
			configuration = (TestConfiguration)eResolveProxy(oldConfiguration);
			if (configuration != oldConfiguration)
			{
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION, oldConfiguration, configuration));
			}
		}
		return configuration;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TestConfiguration basicGetConfiguration()
	{
		return configuration;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setConfiguration(TestConfiguration newConfiguration)
	{
		TestConfiguration oldConfiguration = configuration;
		configuration = newConfiguration;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION, oldConfiguration, configuration));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public InitialConditions getInitialConditions()
	{
		return initialConditions;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetInitialConditions(InitialConditions newInitialConditions, NotificationChain msgs)
	{
		InitialConditions oldInitialConditions = initialConditions;
		initialConditions = newInitialConditions;
		if (eNotificationRequired())
		{
			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, oldInitialConditions, newInitialConditions);
			if (msgs == null) msgs = notification; else msgs.add(notification);
		}
		return msgs;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setInitialConditions(InitialConditions newInitialConditions)
	{
		if (newInitialConditions != initialConditions)
		{
			NotificationChain msgs = null;
			if (initialConditions != null)
				msgs = ((InternalEObject)initialConditions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, null, msgs);
			if (newInitialConditions != null)
				msgs = ((InternalEObject)newInitialConditions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, null, msgs);
			msgs = basicSetInitialConditions(newInitialConditions, msgs);
			if (msgs != null) msgs.dispatch();
		}
		else if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS, newInitialConditions, newInitialConditions));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public ExpectedBehaviour getExpectedBehaviour()
	{
		return expectedBehaviour;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetExpectedBehaviour(ExpectedBehaviour newExpectedBehaviour, NotificationChain msgs)
	{
		ExpectedBehaviour oldExpectedBehaviour = expectedBehaviour;
		expectedBehaviour = newExpectedBehaviour;
		if (eNotificationRequired())
		{
			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, oldExpectedBehaviour, newExpectedBehaviour);
			if (msgs == null) msgs = notification; else msgs.add(notification);
		}
		return msgs;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setExpectedBehaviour(ExpectedBehaviour newExpectedBehaviour)
	{
		if (newExpectedBehaviour != expectedBehaviour)
		{
			NotificationChain msgs = null;
			if (expectedBehaviour != null)
				msgs = ((InternalEObject)expectedBehaviour).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, null, msgs);
			if (newExpectedBehaviour != null)
				msgs = ((InternalEObject)newExpectedBehaviour).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, null, msgs);
			msgs = basicSetExpectedBehaviour(newExpectedBehaviour, msgs);
			if (msgs != null) msgs.dispatch();
		}
		else if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR, newExpectedBehaviour, newExpectedBehaviour));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public FinalConditions getFinalConditions()
	{
		return finalConditions;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetFinalConditions(FinalConditions newFinalConditions, NotificationChain msgs)
	{
		FinalConditions oldFinalConditions = finalConditions;
		finalConditions = newFinalConditions;
		if (eNotificationRequired())
		{
			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, oldFinalConditions, newFinalConditions);
			if (msgs == null) msgs = notification; else msgs.add(notification);
		}
		return msgs;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setFinalConditions(FinalConditions newFinalConditions)
	{
		if (newFinalConditions != finalConditions)
		{
			NotificationChain msgs = null;
			if (finalConditions != null)
				msgs = ((InternalEObject)finalConditions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, null, msgs);
			if (newFinalConditions != null)
				msgs = ((InternalEObject)newFinalConditions).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, null, msgs);
			msgs = basicSetFinalConditions(newFinalConditions, msgs);
			if (msgs != null) msgs.dispatch();
		}
		else if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS, newFinalConditions, newFinalConditions));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public EList<PICSReference> getPicsReference()
	{
		if (picsReference == null)
		{
			picsReference = new EObjectContainmentEList<PICSReference>(PICSReference.class, this, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE);
		}
		return picsReference;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Variants getVariants()
	{
		return variants;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetVariants(Variants newVariants, NotificationChain msgs)
	{
		Variants oldVariants = variants;
		variants = newVariants;
		if (eNotificationRequired())
		{
			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, oldVariants, newVariants);
			if (msgs == null) msgs = notification; else msgs.add(notification);
		}
		return msgs;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setVariants(Variants newVariants)
	{
		if (newVariants != variants)
		{
			NotificationChain msgs = null;
			if (variants != null)
				msgs = ((InternalEObject)variants).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, null, msgs);
			if (newVariants != null)
				msgs = ((InternalEObject)newVariants).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, null, msgs);
			msgs = basicSetVariants(newVariants, msgs);
			if (msgs != null) msgs.dispatch();
		}
		else if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS, newVariants, newVariants));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public int indexOf(Element object)
	{
		// TODO: implement this method
		// Ensure that you remove @generated or mark it @generated NOT
		throw new UnsupportedOperationException();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public StructuredTestObjective getTestObjective()
	{
		// TODO: implement this method
		// Ensure that you remove @generated or mark it @generated NOT
		throw new UnsupportedOperationException();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean contains(Element object)
	{
		// TODO: implement this method
		// Ensure that you remove @generated or mark it @generated NOT
		throw new UnsupportedOperationException();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public EList<Comment> getNotes()
	{
		// TODO: implement this method
		// Ensure that you remove @generated or mark it @generated NOT
		throw new UnsupportedOperationException();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
	{
		switch (featureID)
		{
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS:
				return basicSetInitialConditions(null, msgs);
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR:
				return basicSetExpectedBehaviour(null, msgs);
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS:
				return basicSetFinalConditions(null, msgs);
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE:
				return ((InternalEList<?>)getPicsReference()).basicRemove(otherEnd, msgs);
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS:
				return basicSetVariants(null, 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 StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION:
				if (resolve) return getConfiguration();
				return basicGetConfiguration();
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS:
				return getInitialConditions();
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR:
				return getExpectedBehaviour();
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS:
				return getFinalConditions();
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE:
				return getPicsReference();
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS:
				return getVariants();
		}
		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 StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION:
				setConfiguration((TestConfiguration)newValue);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS:
				setInitialConditions((InitialConditions)newValue);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR:
				setExpectedBehaviour((ExpectedBehaviour)newValue);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS:
				setFinalConditions((FinalConditions)newValue);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE:
				getPicsReference().clear();
				getPicsReference().addAll((Collection<? extends PICSReference>)newValue);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS:
				setVariants((Variants)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID)
	{
		switch (featureID)
		{
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION:
				setConfiguration((TestConfiguration)null);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS:
				setInitialConditions((InitialConditions)null);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR:
				setExpectedBehaviour((ExpectedBehaviour)null);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS:
				setFinalConditions((FinalConditions)null);
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE:
				getPicsReference().clear();
				return;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS:
				setVariants((Variants)null);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID)
	{
		switch (featureID)
		{
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__CONFIGURATION:
				return configuration != null;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__INITIAL_CONDITIONS:
				return initialConditions != null;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__EXPECTED_BEHAVIOUR:
				return expectedBehaviour != null;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__FINAL_CONDITIONS:
				return finalConditions != null;
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__PICS_REFERENCE:
				return picsReference != null && !picsReference.isEmpty();
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE__VARIANTS:
				return variants != null;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass)
	{
		if (baseClass == Element.class)
		{
			switch (baseOperationID)
			{
				case StructuredObjectivesPackage.ELEMENT___GET_TEST_OBJECTIVE: return StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_TEST_OBJECTIVE;
				case StructuredObjectivesPackage.ELEMENT___CONTAINS__ELEMENT: return StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___CONTAINS__ELEMENT;
				case StructuredObjectivesPackage.ELEMENT___GET_NOTES: return StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_NOTES;
				default: return -1;
			}
		}
		return super.eDerivedOperationID(baseOperationID, baseClass);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
	{
		switch (operationID)
		{
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___INDEX_OF__ELEMENT:
				return indexOf((Element)arguments.get(0));
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_TEST_OBJECTIVE:
				return getTestObjective();
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___CONTAINS__ELEMENT:
				return contains((Element)arguments.get(0));
			case StructuredObjectivesPackage.STRUCTURED_TEST_OBJECTIVE___GET_NOTES:
				return getNotes();
		}
		return super.eInvoke(operationID, arguments);
	}

} //StructuredTestObjectiveImpl
