/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.talend.dataquality.rules.impl;
import org.eclipse.emf.common.notify.Notification;
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.EObjectImpl;
import org.talend.dataquality.rules.JoinElement;
import org.talend.dataquality.rules.RulesPackage;
import orgomg.cwm.objectmodel.core.ModelElement;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Join Element</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.talend.dataquality.rules.impl.JoinElementImpl#getColA <em>Col A</em>}</li>
* <li>{@link org.talend.dataquality.rules.impl.JoinElementImpl#getColB <em>Col B</em>}</li>
* <li>{@link org.talend.dataquality.rules.impl.JoinElementImpl#getOperator <em>Operator</em>}</li>
* <li>{@link org.talend.dataquality.rules.impl.JoinElementImpl#getTableAliasA <em>Table Alias A</em>}</li>
* <li>{@link org.talend.dataquality.rules.impl.JoinElementImpl#getTableAliasB <em>Table Alias B</em>}</li>
* <li>{@link org.talend.dataquality.rules.impl.JoinElementImpl#getColumnAliasA <em>Column Alias A</em>}</li>
* <li>{@link org.talend.dataquality.rules.impl.JoinElementImpl#getColumnAliasB <em>Column Alias B</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class JoinElementImpl extends EObjectImpl implements JoinElement {
/**
* The cached value of the '{@link #getColA() <em>Col A</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColA()
* @generated
* @ordered
*/
protected ModelElement colA;
/**
* The cached value of the '{@link #getColB() <em>Col B</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColB()
* @generated
* @ordered
*/
protected ModelElement colB;
/**
* The default value of the '{@link #getOperator() <em>Operator</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOperator()
* @generated
* @ordered
*/
protected static final String OPERATOR_EDEFAULT = null;
/**
* The cached value of the '{@link #getOperator() <em>Operator</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOperator()
* @generated
* @ordered
*/
protected String operator = OPERATOR_EDEFAULT;
/**
* The default value of the '{@link #getTableAliasA() <em>Table Alias A</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTableAliasA()
* @generated
* @ordered
*/
protected static final String TABLE_ALIAS_A_EDEFAULT = null;
/**
* The cached value of the '{@link #getTableAliasA() <em>Table Alias A</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTableAliasA()
* @generated
* @ordered
*/
protected String tableAliasA = TABLE_ALIAS_A_EDEFAULT;
/**
* The default value of the '{@link #getTableAliasB() <em>Table Alias B</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTableAliasB()
* @generated
* @ordered
*/
protected static final String TABLE_ALIAS_B_EDEFAULT = null;
/**
* The cached value of the '{@link #getTableAliasB() <em>Table Alias B</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTableAliasB()
* @generated
* @ordered
*/
protected String tableAliasB = TABLE_ALIAS_B_EDEFAULT;
/**
* The default value of the '{@link #getColumnAliasA() <em>Column Alias A</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColumnAliasA()
* @generated
* @ordered
*/
protected static final String COLUMN_ALIAS_A_EDEFAULT = null;
/**
* The cached value of the '{@link #getColumnAliasA() <em>Column Alias A</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColumnAliasA()
* @generated
* @ordered
*/
protected String columnAliasA = COLUMN_ALIAS_A_EDEFAULT;
/**
* The default value of the '{@link #getColumnAliasB() <em>Column Alias B</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColumnAliasB()
* @generated
* @ordered
*/
protected static final String COLUMN_ALIAS_B_EDEFAULT = null;
/**
* The cached value of the '{@link #getColumnAliasB() <em>Column Alias B</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColumnAliasB()
* @generated
* @ordered
*/
protected String columnAliasB = COLUMN_ALIAS_B_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected JoinElementImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return RulesPackage.Literals.JOIN_ELEMENT;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ModelElement getColA() {
if (colA != null && colA.eIsProxy()) {
InternalEObject oldColA = (InternalEObject)colA;
colA = (ModelElement)eResolveProxy(oldColA);
if (colA != oldColA) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, RulesPackage.JOIN_ELEMENT__COL_A, oldColA, colA));
}
}
return colA;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ModelElement basicGetColA() {
return colA;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setColA(ModelElement newColA) {
ModelElement oldColA = colA;
colA = newColA;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RulesPackage.JOIN_ELEMENT__COL_A, oldColA, colA));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ModelElement getColB() {
if (colB != null && colB.eIsProxy()) {
InternalEObject oldColB = (InternalEObject)colB;
colB = (ModelElement)eResolveProxy(oldColB);
if (colB != oldColB) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, RulesPackage.JOIN_ELEMENT__COL_B, oldColB, colB));
}
}
return colB;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ModelElement basicGetColB() {
return colB;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setColB(ModelElement newColB) {
ModelElement oldColB = colB;
colB = newColB;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RulesPackage.JOIN_ELEMENT__COL_B, oldColB, colB));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getOperator() {
return operator;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setOperator(String newOperator) {
String oldOperator = operator;
operator = newOperator;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RulesPackage.JOIN_ELEMENT__OPERATOR, oldOperator, operator));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getTableAliasA() {
return tableAliasA;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setTableAliasA(String newTableAliasA) {
String oldTableAliasA = tableAliasA;
tableAliasA = newTableAliasA;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_A, oldTableAliasA, tableAliasA));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getTableAliasB() {
return tableAliasB;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setTableAliasB(String newTableAliasB) {
String oldTableAliasB = tableAliasB;
tableAliasB = newTableAliasB;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_B, oldTableAliasB, tableAliasB));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getColumnAliasA() {
return columnAliasA;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setColumnAliasA(String newColumnAliasA) {
String oldColumnAliasA = columnAliasA;
columnAliasA = newColumnAliasA;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_A, oldColumnAliasA, columnAliasA));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getColumnAliasB() {
return columnAliasB;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setColumnAliasB(String newColumnAliasB) {
String oldColumnAliasB = columnAliasB;
columnAliasB = newColumnAliasB;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_B, oldColumnAliasB, columnAliasB));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case RulesPackage.JOIN_ELEMENT__COL_A:
if (resolve) return getColA();
return basicGetColA();
case RulesPackage.JOIN_ELEMENT__COL_B:
if (resolve) return getColB();
return basicGetColB();
case RulesPackage.JOIN_ELEMENT__OPERATOR:
return getOperator();
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_A:
return getTableAliasA();
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_B:
return getTableAliasB();
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_A:
return getColumnAliasA();
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_B:
return getColumnAliasB();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case RulesPackage.JOIN_ELEMENT__COL_A:
setColA((ModelElement)newValue);
return;
case RulesPackage.JOIN_ELEMENT__COL_B:
setColB((ModelElement)newValue);
return;
case RulesPackage.JOIN_ELEMENT__OPERATOR:
setOperator((String)newValue);
return;
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_A:
setTableAliasA((String)newValue);
return;
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_B:
setTableAliasB((String)newValue);
return;
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_A:
setColumnAliasA((String)newValue);
return;
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_B:
setColumnAliasB((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case RulesPackage.JOIN_ELEMENT__COL_A:
setColA((ModelElement)null);
return;
case RulesPackage.JOIN_ELEMENT__COL_B:
setColB((ModelElement)null);
return;
case RulesPackage.JOIN_ELEMENT__OPERATOR:
setOperator(OPERATOR_EDEFAULT);
return;
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_A:
setTableAliasA(TABLE_ALIAS_A_EDEFAULT);
return;
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_B:
setTableAliasB(TABLE_ALIAS_B_EDEFAULT);
return;
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_A:
setColumnAliasA(COLUMN_ALIAS_A_EDEFAULT);
return;
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_B:
setColumnAliasB(COLUMN_ALIAS_B_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case RulesPackage.JOIN_ELEMENT__COL_A:
return colA != null;
case RulesPackage.JOIN_ELEMENT__COL_B:
return colB != null;
case RulesPackage.JOIN_ELEMENT__OPERATOR:
return OPERATOR_EDEFAULT == null ? operator != null : !OPERATOR_EDEFAULT.equals(operator);
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_A:
return TABLE_ALIAS_A_EDEFAULT == null ? tableAliasA != null : !TABLE_ALIAS_A_EDEFAULT.equals(tableAliasA);
case RulesPackage.JOIN_ELEMENT__TABLE_ALIAS_B:
return TABLE_ALIAS_B_EDEFAULT == null ? tableAliasB != null : !TABLE_ALIAS_B_EDEFAULT.equals(tableAliasB);
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_A:
return COLUMN_ALIAS_A_EDEFAULT == null ? columnAliasA != null : !COLUMN_ALIAS_A_EDEFAULT.equals(columnAliasA);
case RulesPackage.JOIN_ELEMENT__COLUMN_ALIAS_B:
return COLUMN_ALIAS_B_EDEFAULT == null ? columnAliasB != null : !COLUMN_ALIAS_B_EDEFAULT.equals(columnAliasB);
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
@Override
public String toString() {
StringBuffer result = new StringBuffer();
result.append(tableAliasA);
result.append(".");
result.append(columnAliasA);
result.append(operator);
result.append(tableAliasB);
result.append(".");
result.append(columnAliasB);
return result.toString();
}
} //JoinElementImpl