/**
* <copyright>
* </copyright>
*
* $Id$
*/
package system.impl;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
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.EDataTypeUniqueEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import system.Interface;
import system.Job;
import system.SystemPackage;
import org.eclipse.incquery.querybasedfeatures.runtime.IQueryBasedFeatureHandler;
import org.eclipse.incquery.querybasedfeatures.runtime.QueryBasedFeatureKind;
import org.eclipse.incquery.querybasedfeatures.runtime.QueryBasedFeatureHelper;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Job</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link system.impl.JobImpl#getRunsOn <em>Runs On</em>}</li>
* <li>{@link system.impl.JobImpl#getCalls <em>Calls</em>}</li>
* <li>{@link system.impl.JobImpl#getTaskIds <em>Task Ids</em>}</li>
* <li>{@link system.impl.JobImpl#getTasks <em>Tasks</em>}</li>
* <li>{@link system.impl.JobImpl#getInfo <em>Info</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class JobImpl extends ResourceElementImpl implements Job {
/**
* The cached value of the '{@link #getRunsOn() <em>Runs On</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRunsOn()
* @generated
* @ordered
*/
protected system.System runsOn;
/**
* The cached value of the '{@link #getCalls() <em>Calls</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCalls()
* @generated
* @ordered
*/
protected EList calls;
/**
* The cached value of the '{@link #getTaskIds() <em>Task Ids</em>}' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTaskIds()
* @generated
* @ordered
*/
protected EList taskIds;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected JobImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected EClass eStaticClass() {
return SystemPackage.Literals.JOB;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public system.System getRunsOn() {
if (runsOn != null && runsOn.eIsProxy()) {
InternalEObject oldRunsOn = (InternalEObject)runsOn;
runsOn = (system.System)eResolveProxy(oldRunsOn);
if (runsOn != oldRunsOn) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, SystemPackage.JOB__RUNS_ON, oldRunsOn, runsOn));
}
}
return runsOn;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public system.System basicGetRunsOn() {
return runsOn;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setRunsOn(system.System newRunsOn) {
system.System oldRunsOn = runsOn;
runsOn = newRunsOn;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, SystemPackage.JOB__RUNS_ON, oldRunsOn, runsOn));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList getCalls() {
if (calls == null) {
calls = new EObjectResolvingEList(Interface.class, this, SystemPackage.JOB__CALLS);
}
return calls;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList getTaskIds() {
if (taskIds == null) {
taskIds = new EDataTypeUniqueEList(String.class, this, SystemPackage.JOB__TASK_IDS);
}
return taskIds;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList getTasksGen() {
// TODO: implement this method to return the 'Tasks' reference list
// Ensure that you remove @generated or mark it @generated NOT
// The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
// so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.EcoreEList should be used.
throw new UnsupportedOperationException();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList getInfoGen() {
// TODO: implement this method to return the 'Info' reference list
// Ensure that you remove @generated or mark it @generated NOT
// The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
// so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.EcoreEList should be used.
throw new UnsupportedOperationException();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case SystemPackage.JOB__RUNS_ON:
if (resolve) return getRunsOn();
return basicGetRunsOn();
case SystemPackage.JOB__CALLS:
return getCalls();
case SystemPackage.JOB__TASK_IDS:
return getTaskIds();
case SystemPackage.JOB__TASKS:
return getTasks();
case SystemPackage.JOB__INFO:
return getInfo();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case SystemPackage.JOB__RUNS_ON:
setRunsOn((system.System)newValue);
return;
case SystemPackage.JOB__CALLS:
getCalls().clear();
getCalls().addAll((Collection)newValue);
return;
case SystemPackage.JOB__TASK_IDS:
getTaskIds().clear();
getTaskIds().addAll((Collection)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void eUnset(int featureID) {
switch (featureID) {
case SystemPackage.JOB__RUNS_ON:
setRunsOn((system.System)null);
return;
case SystemPackage.JOB__CALLS:
getCalls().clear();
return;
case SystemPackage.JOB__TASK_IDS:
getTaskIds().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean eIsSet(int featureID) {
switch (featureID) {
case SystemPackage.JOB__RUNS_ON:
return runsOn != null;
case SystemPackage.JOB__CALLS:
return calls != null && !calls.isEmpty();
case SystemPackage.JOB__TASK_IDS:
return taskIds != null && !taskIds.isEmpty();
case SystemPackage.JOB__TASKS:
return !getTasks().isEmpty();
case SystemPackage.JOB__INFO:
return !getInfo().isEmpty();
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (taskIds: ");
result.append(taskIds);
result.append(')');
return result.toString();
}
/**
* EMF-IncQuery handler for query-based feature tasks
*/
private IQueryBasedFeatureHandler tasksHandler;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @query-based getter created by EMF-IncQuery for query-based feature tasks
*/
public EList getTasks() {
if (tasksHandler == null) {
tasksHandler = QueryBasedFeatureHelper.getQueryBasedFeatureHandler(
this, SystemPackageImpl.Literals.JOB__TASKS,
"system.queries.JobTaskCorrespondence", "Job", "Task",
QueryBasedFeatureKind.MANY_REFERENCE, true, false);
}
return tasksHandler.getManyReferenceValueAsEList(this);
}
/**
* EMF-IncQuery handler for query-based feature info
*/
private IQueryBasedFeatureHandler infoHandler;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @query-based getter created by EMF-IncQuery for query-based feature info
*/
public EList getInfo() {
if (infoHandler == null) {
infoHandler = QueryBasedFeatureHelper.getQueryBasedFeatureHandler(
this, SystemPackageImpl.Literals.JOB__INFO,
"system.queries.JobInfoCorrespondence", "Job", "Info",
QueryBasedFeatureKind.MANY_REFERENCE, true, false);
}
return infoHandler.getManyReferenceValueAsEList(this);
}
} //JobImpl