| /** |
| * <copyright> |
| * </copyright> |
| * |
| * $Id: CheckerInstanceImpl.java,v 1.6 2009/02/27 15:44:40 apanchenk Exp $ |
| */ |
| package org.eclipse.dltk.tcl.tclchecker.model.configs.impl; |
| |
| import java.util.Collection; |
| import java.util.List; |
| |
| import org.eclipse.dltk.tcl.tclchecker.model.configs.CheckerConfig; |
| import org.eclipse.dltk.tcl.tclchecker.model.configs.CheckerEnvironmentInstance; |
| import org.eclipse.dltk.tcl.tclchecker.model.configs.CheckerInstance; |
| import org.eclipse.dltk.tcl.tclchecker.model.configs.CheckerVersion; |
| import org.eclipse.dltk.tcl.tclchecker.model.configs.ConfigsFactory; |
| import org.eclipse.dltk.tcl.tclchecker.model.configs.ConfigsPackage; |
| import org.eclipse.dltk.validators.configs.ValidatorConfig; |
| import org.eclipse.dltk.validators.configs.ValidatorEnvironmentInstance; |
| import org.eclipse.dltk.validators.configs.impl.ValidatorInstanceImpl; |
| 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.DelegatingEcoreEList; |
| import org.eclipse.emf.ecore.util.EObjectContainmentEList; |
| import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; |
| import org.eclipse.emf.ecore.util.InternalEList; |
| |
| /** |
| * <!-- begin-user-doc --> An implementation of the model object ' |
| * <em><b>Checker Instance</b></em>'. <!-- end-user-doc --> |
| * <p> |
| * The following features are implemented: |
| * </p> |
| * <ul> |
| * <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerInstanceImpl#getVersion <em>Version</em>}</li> |
| * <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerInstanceImpl#getCommandLineOptions <em>Command Line Options</em>}</li> |
| * <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerInstanceImpl#getEnvironments <em>Environments</em>}</li> |
| * <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerInstanceImpl#getFavorite <em>Favorite</em>}</li> |
| * <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerInstanceImpl#getConfigs <em>Configs</em>}</li> |
| * </ul> |
| * |
| * @generated |
| */ |
| public class CheckerInstanceImpl extends ValidatorInstanceImpl implements |
| CheckerInstance { |
| /** |
| * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @see #getVersion() |
| * @generated |
| * @ordered |
| */ |
| protected static final CheckerVersion VERSION_EDEFAULT = CheckerVersion.VERSION4; |
| |
| /** |
| * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute. |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @see #getVersion() |
| * @generated |
| * @ordered |
| */ |
| protected CheckerVersion version = VERSION_EDEFAULT; |
| |
| /** |
| * The default value of the '{@link #getCommandLineOptions() <em>Command Line Options</em>}' attribute. |
| * <!-- begin-user-doc --> <!-- |
| * end-user-doc --> |
| * @see #getCommandLineOptions() |
| * @generated |
| * @ordered |
| */ |
| protected static final String COMMAND_LINE_OPTIONS_EDEFAULT = null; |
| |
| /** |
| * The cached value of the '{@link #getCommandLineOptions() <em>Command Line Options</em>}' attribute. |
| * <!-- begin-user-doc --> <!-- |
| * end-user-doc --> |
| * @see #getCommandLineOptions() |
| * @generated |
| * @ordered |
| */ |
| protected String commandLineOptions = COMMAND_LINE_OPTIONS_EDEFAULT; |
| |
| /** |
| * The cached value of the '{@link #getEnvironments() <em>Environments</em>} |
| * ' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc |
| * --> |
| * |
| * @see #getEnvironments() |
| * @generated |
| * @ordered |
| */ |
| protected EList<CheckerEnvironmentInstance> environments; |
| |
| /** |
| * The cached value of the '{@link #getFavorite() <em>Favorite</em>}' reference. |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @see #getFavorite() |
| * @generated |
| * @ordered |
| */ |
| protected CheckerConfig favorite; |
| |
| /** |
| * The cached value of the '{@link #getConfigs() <em>Configs</em>}' containment reference list. |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @see #getConfigs() |
| * @generated |
| * @ordered |
| */ |
| protected EList<CheckerConfig> configs; |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| protected CheckerInstanceImpl() { |
| super(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| protected EClass eStaticClass() { |
| return ConfigsPackage.Literals.CHECKER_INSTANCE; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public CheckerVersion getVersion() { |
| return version; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public void setVersion(CheckerVersion newVersion) { |
| CheckerVersion oldVersion = version; |
| version = newVersion == null ? VERSION_EDEFAULT : newVersion; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, ConfigsPackage.CHECKER_INSTANCE__VERSION, oldVersion, version)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public String getCommandLineOptions() { |
| return commandLineOptions; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public void setCommandLineOptions(String newCommandLineOptions) { |
| String oldCommandLineOptions = commandLineOptions; |
| commandLineOptions = newCommandLineOptions; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, ConfigsPackage.CHECKER_INSTANCE__COMMAND_LINE_OPTIONS, oldCommandLineOptions, commandLineOptions)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public EList<CheckerEnvironmentInstance> getEnvironments() { |
| if (environments == null) { |
| environments = new EObjectContainmentWithInverseEList<CheckerEnvironmentInstance>(CheckerEnvironmentInstance.class, this, ConfigsPackage.CHECKER_INSTANCE__ENVIRONMENTS, ConfigsPackage.CHECKER_ENVIRONMENT_INSTANCE__INSTANCE); |
| } |
| return environments; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public CheckerConfig getFavorite() { |
| if (favorite != null && favorite.eIsProxy()) { |
| InternalEObject oldFavorite = (InternalEObject)favorite; |
| favorite = (CheckerConfig)eResolveProxy(oldFavorite); |
| if (favorite != oldFavorite) { |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.RESOLVE, ConfigsPackage.CHECKER_INSTANCE__FAVORITE, oldFavorite, favorite)); |
| } |
| } |
| return favorite; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| public CheckerConfig basicGetFavorite() { |
| return favorite; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public void setFavorite(CheckerConfig newFavorite) { |
| CheckerConfig oldFavorite = favorite; |
| favorite = newFavorite; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, ConfigsPackage.CHECKER_INSTANCE__FAVORITE, oldFavorite, favorite)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public EList<CheckerConfig> getConfigs() { |
| if (configs == null) { |
| configs = new EObjectContainmentEList<CheckerConfig>(CheckerConfig.class, this, ConfigsPackage.CHECKER_INSTANCE__CONFIGS); |
| } |
| return configs; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated NOT |
| */ |
| @Override |
| public CheckerEnvironmentInstance getEnvironment(String environmentId) { |
| final EList<CheckerEnvironmentInstance> envs = getEnvironments(); |
| for (CheckerEnvironmentInstance environmentInstance : envs) { |
| if (environmentId.equals(environmentInstance.getEnvironmentId())) { |
| return environmentInstance; |
| } |
| } |
| CheckerEnvironmentInstance environmentInstance = ConfigsFactory.eINSTANCE |
| .createCheckerEnvironmentInstance(); |
| environmentInstance.setEnvironmentId(environmentId); |
| environmentInstance.setAutomatic(isAutomatic()); |
| envs.add(environmentInstance); |
| return environmentInstance; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| @Override |
| public CheckerEnvironmentInstance findEnvironment(String environmentId) { |
| final EList<CheckerEnvironmentInstance> envs = getEnvironments(); |
| for (CheckerEnvironmentInstance environmentInstance : envs) { |
| if (environmentId.equals(environmentInstance.getEnvironmentId())) { |
| return environmentInstance; |
| } |
| } |
| return null; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @SuppressWarnings("unchecked") |
| @Override |
| public NotificationChain eInverseAdd(InternalEObject otherEnd, |
| int featureID, NotificationChain msgs) { |
| switch (featureID) { |
| case ConfigsPackage.CHECKER_INSTANCE__ENVIRONMENTS: |
| return ((InternalEList<InternalEObject>)(InternalEList<?>)getEnvironments()).basicAdd(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 ConfigsPackage.CHECKER_INSTANCE__ENVIRONMENTS: |
| return ((InternalEList<?>)getEnvironments()).basicRemove(otherEnd, msgs); |
| case ConfigsPackage.CHECKER_INSTANCE__CONFIGS: |
| return ((InternalEList<?>)getConfigs()).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 ConfigsPackage.CHECKER_INSTANCE__VERSION: |
| return getVersion(); |
| case ConfigsPackage.CHECKER_INSTANCE__COMMAND_LINE_OPTIONS: |
| return getCommandLineOptions(); |
| case ConfigsPackage.CHECKER_INSTANCE__ENVIRONMENTS: |
| return getEnvironments(); |
| case ConfigsPackage.CHECKER_INSTANCE__FAVORITE: |
| if (resolve) return getFavorite(); |
| return basicGetFavorite(); |
| case ConfigsPackage.CHECKER_INSTANCE__CONFIGS: |
| return getConfigs(); |
| } |
| 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 ConfigsPackage.CHECKER_INSTANCE__VERSION: |
| setVersion((CheckerVersion)newValue); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__COMMAND_LINE_OPTIONS: |
| setCommandLineOptions((String)newValue); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__ENVIRONMENTS: |
| getEnvironments().clear(); |
| getEnvironments().addAll((Collection<? extends CheckerEnvironmentInstance>)newValue); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__FAVORITE: |
| setFavorite((CheckerConfig)newValue); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__CONFIGS: |
| getConfigs().clear(); |
| getConfigs().addAll((Collection<? extends CheckerConfig>)newValue); |
| return; |
| } |
| super.eSet(featureID, newValue); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public void eUnset(int featureID) { |
| switch (featureID) { |
| case ConfigsPackage.CHECKER_INSTANCE__VERSION: |
| setVersion(VERSION_EDEFAULT); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__COMMAND_LINE_OPTIONS: |
| setCommandLineOptions(COMMAND_LINE_OPTIONS_EDEFAULT); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__ENVIRONMENTS: |
| getEnvironments().clear(); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__FAVORITE: |
| setFavorite((CheckerConfig)null); |
| return; |
| case ConfigsPackage.CHECKER_INSTANCE__CONFIGS: |
| getConfigs().clear(); |
| return; |
| } |
| super.eUnset(featureID); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public boolean eIsSet(int featureID) { |
| switch (featureID) { |
| case ConfigsPackage.CHECKER_INSTANCE__VERSION: |
| return version != VERSION_EDEFAULT; |
| case ConfigsPackage.CHECKER_INSTANCE__COMMAND_LINE_OPTIONS: |
| return COMMAND_LINE_OPTIONS_EDEFAULT == null ? commandLineOptions != null : !COMMAND_LINE_OPTIONS_EDEFAULT.equals(commandLineOptions); |
| case ConfigsPackage.CHECKER_INSTANCE__ENVIRONMENTS: |
| return environments != null && !environments.isEmpty(); |
| case ConfigsPackage.CHECKER_INSTANCE__FAVORITE: |
| return favorite != null; |
| case ConfigsPackage.CHECKER_INSTANCE__CONFIGS: |
| return configs != null && !configs.isEmpty(); |
| } |
| return super.eIsSet(featureID); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public String toString() { |
| if (eIsProxy()) return super.toString(); |
| |
| StringBuilder result = new StringBuilder(super.toString()); |
| result.append(" (version: "); //$NON-NLS-1$ |
| result.append(version); |
| result.append(", commandLineOptions: "); //$NON-NLS-1$ |
| result.append(commandLineOptions); |
| result.append(')'); |
| return result.toString(); |
| } |
| |
| @SuppressWarnings("serial") |
| @Override |
| public EList<ValidatorConfig> getValidatorConfigs() { |
| return new DelegatingEcoreEList.Dynamic<ValidatorConfig>( |
| eContainerFeatureID, this, |
| ConfigsPackage.Literals.CHECKER_INSTANCE__CONFIGS) { |
| |
| @SuppressWarnings("unchecked") |
| @Override |
| protected List<ValidatorConfig> delegateList() { |
| return (List<ValidatorConfig>) (List<?>) getConfigs(); |
| } |
| |
| }; |
| } |
| |
| @SuppressWarnings("unchecked") |
| @Override |
| public EList<ValidatorEnvironmentInstance> getValidatorEnvironments() { |
| return (EList<ValidatorEnvironmentInstance>) (List<?>) getEnvironments(); |
| } |
| |
| @Override |
| public ValidatorConfig getValidatorFavoriteConfig() { |
| return getFavorite(); |
| } |
| |
| @Override |
| public void setValidatorFavoriteConfig( |
| ValidatorConfig newValidatorFavoriteConfig) { |
| setFavorite((CheckerConfig) newValidatorFavoriteConfig); |
| } |
| |
| } // CheckerInstanceImpl |