Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java498
1 files changed, 498 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java
new file mode 100644
index 0000000000..ea07f383be
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java
@@ -0,0 +1,498 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+
+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.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Preference Profile</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPreferenceFilters <em>Preference Filters</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getReferentProjects <em>Referent Projects</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getProject <em>Project</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPredicates <em>Predicates</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPrerequisites <em>Prerequisites</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PreferenceProfileImpl extends MinimalEObjectImpl.Container implements PreferenceProfile
+{
+ /**
+ * The cached value of the '{@link #getPreferenceFilters() <em>Preference Filters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreferenceFilters()
+ * @generated
+ * @ordered
+ */
+ protected EList<PreferenceFilter> preferenceFilters;
+
+ /**
+ * The cached value of the '{@link #getReferentProjects() <em>Referent Projects</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferentProjects()
+ * @generated
+ * @ordered
+ */
+ protected EList<Project> referentProjects;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicates()
+ * @generated
+ * @ordered
+ */
+ protected EList<Predicate> predicates;
+
+ /**
+ * The cached value of the '{@link #getPrerequisites() <em>Prerequisites</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrerequisites()
+ * @generated
+ * @ordered
+ */
+ protected EList<PreferenceProfile> prerequisites;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferenceProfileImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ProjectConfigPackage.Literals.PREFERENCE_PROFILE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PreferenceFilter> getPreferenceFilters()
+ {
+ if (preferenceFilters == null)
+ {
+ preferenceFilters = new EObjectContainmentWithInverseEList<PreferenceFilter>(PreferenceFilter.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE);
+ }
+ return preferenceFilters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Project> getReferentProjects()
+ {
+ if (referentProjects == null)
+ {
+ referentProjects = new EObjectWithInverseResolvingEList.ManyInverse<Project>(Project.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES);
+ }
+ return referentProjects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_PROFILE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Project getProject()
+ {
+ if (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT) return null;
+ return (Project)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetProject(Project newProject, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newProject, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProject(Project newProject)
+ {
+ if (newProject != eInternalContainer() || (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT && newProject != null))
+ {
+ if (EcoreUtil.isAncestor(this, newProject))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newProject != null)
+ msgs = ((InternalEObject)newProject).eInverseAdd(this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, Project.class, msgs);
+ msgs = basicSetProject(newProject, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT, newProject, newProject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Predicate> getPredicates()
+ {
+ if (predicates == null)
+ {
+ predicates = new EObjectContainmentEList<Predicate>(Predicate.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES);
+ }
+ return predicates;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PreferenceProfile> getPrerequisites()
+ {
+ if (prerequisites == null)
+ {
+ prerequisites = new EObjectResolvingEList<PreferenceProfile>(PreferenceProfile.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES);
+ }
+ return prerequisites;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean requires(PreferenceProfile preferenceProfile)
+ {
+ return requires(new HashSet<PreferenceProfile>(), getPrerequisites(), preferenceProfile);
+ }
+
+ private boolean requires(Set<PreferenceProfile> visited, List<PreferenceProfile> preferenceProfiles,
+ PreferenceProfile preferenceProfile)
+ {
+ for (PreferenceProfile requiredPreferenceProfile : preferenceProfiles)
+ {
+ if (requiredPreferenceProfile == preferenceProfile)
+ {
+ return true;
+ }
+ if (visited.add(requiredPreferenceProfile))
+ {
+ requires(visited, requiredPreferenceProfile.getPrerequisites(), requiredPreferenceProfile);
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getPreferenceFilters()).basicAdd(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getReferentProjects()).basicAdd(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetProject((Project)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 ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return ((InternalEList<?>)getPreferenceFilters()).basicRemove(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return ((InternalEList<?>)getReferentProjects()).basicRemove(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return basicSetProject(null, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ return ((InternalEList<?>)getPredicates()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return eInternalContainer().eInverseRemove(this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, Project.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return getPreferenceFilters();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return getReferentProjects();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ return getName();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return getProject();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ return getPredicates();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ return getPrerequisites();
+ }
+ 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 ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ getPreferenceFilters().clear();
+ getPreferenceFilters().addAll((Collection<? extends PreferenceFilter>)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ getReferentProjects().clear();
+ getReferentProjects().addAll((Collection<? extends Project>)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ setName((String)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ setProject((Project)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ getPredicates().clear();
+ getPredicates().addAll((Collection<? extends Predicate>)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ getPrerequisites().clear();
+ getPrerequisites().addAll((Collection<? extends PreferenceProfile>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ getPreferenceFilters().clear();
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ getReferentProjects().clear();
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ setProject((Project)null);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ getPredicates().clear();
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ getPrerequisites().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return preferenceFilters != null && !preferenceFilters.isEmpty();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return referentProjects != null && !referentProjects.isEmpty();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return getProject() != null;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ return predicates != null && !predicates.isEmpty();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ return prerequisites != null && !prerequisites.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE:
+ return requires((PreferenceProfile)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PreferenceProfileImpl

Back to the top