/**
* <copyright>
* </copyright>
*
* $Id: CheckerConfigImpl.java,v 1.3 2009/02/27 09:16:01 apanchenk Exp $
*/
package org.eclipse.dltk.tcl.tclchecker.model.configs.impl;
import org.eclipse.dltk.tcl.tclchecker.model.configs.CheckerConfig;
import org.eclipse.dltk.tcl.tclchecker.model.configs.CheckerMode;
import org.eclipse.dltk.tcl.tclchecker.model.configs.ConfigsPackage;
import org.eclipse.dltk.tcl.tclchecker.model.configs.MessageState;
import org.eclipse.dltk.validators.configs.impl.ValidatorConfigImpl;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EcoreEMap;
import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Checker Config</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerConfigImpl#isSummary <em>Summary</em>}</li>
* <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerConfigImpl#getMode <em>Mode</em>}</li>
* <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerConfigImpl#getMessageStates <em>Message States</em>}</li>
* <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerConfigImpl#isUseTclVer <em>Use Tcl Ver</em>}</li>
* <li>{@link org.eclipse.dltk.tcl.tclchecker.model.configs.impl.CheckerConfigImpl#isIndividualMessageStates <em>Individual Message States</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class CheckerConfigImpl extends ValidatorConfigImpl implements CheckerConfig {
/**
* The default value of the '{@link #isSummary() <em>Summary</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSummary()
* @generated
* @ordered
*/
protected static final boolean SUMMARY_EDEFAULT = false;
/**
* The cached value of the '{@link #isSummary() <em>Summary</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSummary()
* @generated
* @ordered
*/
protected boolean summary = SUMMARY_EDEFAULT;
/**
* The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMode()
* @generated
* @ordered
*/
protected static final CheckerMode MODE_EDEFAULT = CheckerMode.DEFAULT;
/**
* The cached value of the '{@link #getMode() <em>Mode</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMode()
* @generated
* @ordered
*/
protected CheckerMode mode = MODE_EDEFAULT;
/**
* The cached value of the '{@link #getMessageStates() <em>Message States</em>}' map.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMessageStates()
* @generated
* @ordered
*/
protected EMap<String, MessageState> messageStates;
/**
* The default value of the '{@link #isUseTclVer() <em>Use Tcl Ver</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isUseTclVer()
* @generated
* @ordered
*/
protected static final boolean USE_TCL_VER_EDEFAULT = true;
/**
* The cached value of the '{@link #isUseTclVer() <em>Use Tcl Ver</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isUseTclVer()
* @generated
* @ordered
*/
protected boolean useTclVer = USE_TCL_VER_EDEFAULT;
/**
* The default value of the '{@link #isIndividualMessageStates() <em>Individual Message States</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIndividualMessageStates()
* @generated
* @ordered
*/
protected static final boolean INDIVIDUAL_MESSAGE_STATES_EDEFAULT = false;
/**
* The cached value of the '{@link #isIndividualMessageStates() <em>Individual Message States</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIndividualMessageStates()
* @generated
* @ordered
*/
protected boolean individualMessageStates = INDIVIDUAL_MESSAGE_STATES_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected CheckerConfigImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return ConfigsPackage.Literals.CHECKER_CONFIG;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isSummary() {
return summary;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setSummary(boolean newSummary) {
boolean oldSummary = summary;
summary = newSummary;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ConfigsPackage.CHECKER_CONFIG__SUMMARY, oldSummary, summary));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public CheckerMode getMode() {
return mode;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setMode(CheckerMode newMode) {
CheckerMode oldMode = mode;
mode = newMode == null ? MODE_EDEFAULT : newMode;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ConfigsPackage.CHECKER_CONFIG__MODE, oldMode, mode));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EMap<String, MessageState> getMessageStates() {
if (messageStates == null) {
messageStates = new EcoreEMap<String,MessageState>(ConfigsPackage.Literals.MESSAGE_STATE_MAP, MessageStateMapImpl.class, this, ConfigsPackage.CHECKER_CONFIG__MESSAGE_STATES);
}
return messageStates;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isUseTclVer() {
return useTclVer;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setUseTclVer(boolean newUseTclVer) {
boolean oldUseTclVer = useTclVer;
useTclVer = newUseTclVer;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ConfigsPackage.CHECKER_CONFIG__USE_TCL_VER, oldUseTclVer, useTclVer));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isIndividualMessageStates() {
return individualMessageStates;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIndividualMessageStates(boolean newIndividualMessageStates) {
boolean oldIndividualMessageStates = individualMessageStates;
individualMessageStates = newIndividualMessageStates;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ConfigsPackage.CHECKER_CONFIG__INDIVIDUAL_MESSAGE_STATES, oldIndividualMessageStates, individualMessageStates));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case ConfigsPackage.CHECKER_CONFIG__MESSAGE_STATES:
return ((InternalEList<?>)getMessageStates()).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_CONFIG__SUMMARY:
return isSummary() ? Boolean.TRUE : Boolean.FALSE;
case ConfigsPackage.CHECKER_CONFIG__MODE:
return getMode();
case ConfigsPackage.CHECKER_CONFIG__MESSAGE_STATES:
if (coreType) return getMessageStates();
else return getMessageStates().map();
case ConfigsPackage.CHECKER_CONFIG__USE_TCL_VER:
return isUseTclVer() ? Boolean.TRUE : Boolean.FALSE;
case ConfigsPackage.CHECKER_CONFIG__INDIVIDUAL_MESSAGE_STATES:
return isIndividualMessageStates() ? Boolean.TRUE : Boolean.FALSE;
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case ConfigsPackage.CHECKER_CONFIG__SUMMARY:
setSummary(((Boolean)newValue).booleanValue());
return;
case ConfigsPackage.CHECKER_CONFIG__MODE:
setMode((CheckerMode)newValue);
return;
case ConfigsPackage.CHECKER_CONFIG__MESSAGE_STATES:
((EStructuralFeature.Setting)getMessageStates()).set(newValue);
return;
case ConfigsPackage.CHECKER_CONFIG__USE_TCL_VER:
setUseTclVer(((Boolean)newValue).booleanValue());
return;
case ConfigsPackage.CHECKER_CONFIG__INDIVIDUAL_MESSAGE_STATES:
setIndividualMessageStates(((Boolean)newValue).booleanValue());
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case ConfigsPackage.CHECKER_CONFIG__SUMMARY:
setSummary(SUMMARY_EDEFAULT);
return;
case ConfigsPackage.CHECKER_CONFIG__MODE:
setMode(MODE_EDEFAULT);
return;
case ConfigsPackage.CHECKER_CONFIG__MESSAGE_STATES:
getMessageStates().clear();
return;
case ConfigsPackage.CHECKER_CONFIG__USE_TCL_VER:
setUseTclVer(USE_TCL_VER_EDEFAULT);
return;
case ConfigsPackage.CHECKER_CONFIG__INDIVIDUAL_MESSAGE_STATES:
setIndividualMessageStates(INDIVIDUAL_MESSAGE_STATES_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case ConfigsPackage.CHECKER_CONFIG__SUMMARY:
return summary != SUMMARY_EDEFAULT;
case ConfigsPackage.CHECKER_CONFIG__MODE:
return mode != MODE_EDEFAULT;
case ConfigsPackage.CHECKER_CONFIG__MESSAGE_STATES:
return messageStates != null && !messageStates.isEmpty();
case ConfigsPackage.CHECKER_CONFIG__USE_TCL_VER:
return useTclVer != USE_TCL_VER_EDEFAULT;
case ConfigsPackage.CHECKER_CONFIG__INDIVIDUAL_MESSAGE_STATES:
return individualMessageStates != INDIVIDUAL_MESSAGE_STATES_EDEFAULT;
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (summary: "); //$NON-NLS-1$
result.append(summary);
result.append(", mode: "); //$NON-NLS-1$
result.append(mode);
result.append(", useTclVer: "); //$NON-NLS-1$
result.append(useTclVer);
result.append(", individualMessageStates: "); //$NON-NLS-1$
result.append(individualMessageStates);
result.append(')');
return result.toString();
}
} //CheckerConfigImpl