/**
* <copyright>
* </copyright>
*
* $Id$
*/
package com.openMap1.mapper.impl;
import com.openMap1.mapper.util.MapperValidator;
import com.openMap1.mapper.util.ModelUtil;
import com.openMap1.mapper.FixedPropertyValue;
import com.openMap1.mapper.MapperPackage;
import com.openMap1.mapper.ObjMapping;
import java.util.Map;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Fixed Property Value</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link com.openMap1.mapper.impl.FixedPropertyValueImpl#getMappedProperty <em>Mapped Property</em>}</li>
* <li>{@link com.openMap1.mapper.impl.FixedPropertyValueImpl#getFixedValue <em>Fixed Value</em>}</li>
* <li>{@link com.openMap1.mapper.impl.FixedPropertyValueImpl#getValueType <em>Value Type</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class FixedPropertyValueImpl extends EObjectImpl implements FixedPropertyValue {
/**
* The default value of the '{@link #getMappedProperty() <em>Mapped Property</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMappedProperty()
* @generated
* @ordered
*/
protected static final String MAPPED_PROPERTY_EDEFAULT = null;
/**
* The cached value of the '{@link #getMappedProperty() <em>Mapped Property</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMappedProperty()
* @generated
* @ordered
*/
protected String mappedProperty = MAPPED_PROPERTY_EDEFAULT;
/**
* The default value of the '{@link #getFixedValue() <em>Fixed Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getFixedValue()
* @generated
* @ordered
*/
protected static final String FIXED_VALUE_EDEFAULT = null;
/**
* The cached value of the '{@link #getFixedValue() <em>Fixed Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getFixedValue()
* @generated
* @ordered
*/
protected String fixedValue = FIXED_VALUE_EDEFAULT;
/**
* The default value of the '{@link #getValueType() <em>Value Type</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getValueType()
* @generated
* @ordered
*/
protected static final String VALUE_TYPE_EDEFAULT = null;
/**
* The cached value of the '{@link #getValueType() <em>Value Type</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getValueType()
* @generated
* @ordered
*/
protected String valueType = VALUE_TYPE_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected FixedPropertyValueImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return MapperPackage.Literals.FIXED_PROPERTY_VALUE;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getMappedProperty() {
return mappedProperty;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setMappedProperty(String newMappedProperty) {
String oldMappedProperty = mappedProperty;
mappedProperty = newMappedProperty;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MapperPackage.FIXED_PROPERTY_VALUE__MAPPED_PROPERTY, oldMappedProperty, mappedProperty));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getFixedValue() {
return fixedValue;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setFixedValue(String newFixedValue) {
String oldFixedValue = fixedValue;
fixedValue = newFixedValue;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MapperPackage.FIXED_PROPERTY_VALUE__FIXED_VALUE, oldFixedValue, fixedValue));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getValueType() {
return valueType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setValueType(String newValueType) {
String oldValueType = valueType;
valueType = newValueType;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MapperPackage.FIXED_PROPERTY_VALUE__VALUE_TYPE, oldValueType, valueType));
}
/**
* <!-- begin-user-doc -->
* check that the class of the object mapping (if it exists) has the property.
* Can fixed properties be pseudo-properties, i.e inputs to property conversions? Yes.
* <!-- end-user-doc -->
*/
public boolean classHasProperty(DiagnosticChain diagnostics, Map<?,?> context) {
boolean classHasProp = true;
// only make the check if class of the object mapping is in the class model
ObjMapping om = (ObjMapping)eContainer();
if (ModelUtil.isInClassModel(om.getMappedClass(), om.getMappedPackage(),this))
{
classHasProp = ModelUtil.hasPropertyOrPseudoProperty(om.getMappedClass(), om.getMappedPackage(),om.getSubset(), getMappedProperty(), this);
}
if (!classHasProp) {
if (diagnostics != null) {
diagnostics.add
(new BasicDiagnostic
(Diagnostic.ERROR,
MapperValidator.DIAGNOSTIC_SOURCE,
MapperValidator.FIXED_PROPERTY_VALUE__CLASS_HAS_PROPERTY,
"Class '" + om.getMappedClass() + "' has no property '" + getMappedProperty() + "'",
new Object [] { this }));
}
return false;
}
return true;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case MapperPackage.FIXED_PROPERTY_VALUE__MAPPED_PROPERTY:
return getMappedProperty();
case MapperPackage.FIXED_PROPERTY_VALUE__FIXED_VALUE:
return getFixedValue();
case MapperPackage.FIXED_PROPERTY_VALUE__VALUE_TYPE:
return getValueType();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case MapperPackage.FIXED_PROPERTY_VALUE__MAPPED_PROPERTY:
setMappedProperty((String)newValue);
return;
case MapperPackage.FIXED_PROPERTY_VALUE__FIXED_VALUE:
setFixedValue((String)newValue);
return;
case MapperPackage.FIXED_PROPERTY_VALUE__VALUE_TYPE:
setValueType((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case MapperPackage.FIXED_PROPERTY_VALUE__MAPPED_PROPERTY:
setMappedProperty(MAPPED_PROPERTY_EDEFAULT);
return;
case MapperPackage.FIXED_PROPERTY_VALUE__FIXED_VALUE:
setFixedValue(FIXED_VALUE_EDEFAULT);
return;
case MapperPackage.FIXED_PROPERTY_VALUE__VALUE_TYPE:
setValueType(VALUE_TYPE_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case MapperPackage.FIXED_PROPERTY_VALUE__MAPPED_PROPERTY:
return MAPPED_PROPERTY_EDEFAULT == null ? mappedProperty != null : !MAPPED_PROPERTY_EDEFAULT.equals(mappedProperty);
case MapperPackage.FIXED_PROPERTY_VALUE__FIXED_VALUE:
return FIXED_VALUE_EDEFAULT == null ? fixedValue != null : !FIXED_VALUE_EDEFAULT.equals(fixedValue);
case MapperPackage.FIXED_PROPERTY_VALUE__VALUE_TYPE:
return VALUE_TYPE_EDEFAULT == null ? valueType != null : !VALUE_TYPE_EDEFAULT.equals(valueType);
}
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(" (mappedProperty: ");
result.append(mappedProperty);
result.append(", fixedValue: ");
result.append(fixedValue);
result.append(", valueType: ");
result.append(valueType);
result.append(')');
return result.toString();
}
/**
* @return text description of the fixed value, for the Filter column in Mappings view
*/
public String getDetails()
{
return (getMappedProperty() + " = '" + getFixedValue() + "'");
}
} //FixedPropertyValueImpl