blob: a4f8ba16712656d889092b8a5ea5208bdcd2907a [file] [log] [blame]
/**
* Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http{//www.eclipse.org/legal/epl-v10.html
*
* Based on ideas from Xtext, Xtend, Xcore
*
* Contributors{
* Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation
*
*/
package org.eclipse.osbp.xtext.datainterchange.impl;
import java.util.Collection;
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.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.osbp.dsl.semantic.entity.LEntity;
import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
import org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression;
import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat;
import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Data Interchange Bean</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getEntity <em>Entity</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#isMarkLatest <em>Mark Latest</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getLatestProperty <em>Latest Property</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#isRecordElement <em>Record Element</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#isRecordList <em>Record List</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getElementMap <em>Element Map</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getLookup <em>Lookup</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getFormat <em>Format</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getExpression <em>Expression</em>}</li>
* <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getMappings <em>Mappings</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class DataInterchangeBeanImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeBean {
/**
* The cached value of the '{@link #getEntity() <em>Entity</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEntity()
* @generated
* @ordered
*/
protected LEntity entity;
/**
* The default value of the '{@link #isMarkLatest() <em>Mark Latest</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isMarkLatest()
* @generated
* @ordered
*/
protected static final boolean MARK_LATEST_EDEFAULT = false;
/**
* The cached value of the '{@link #isMarkLatest() <em>Mark Latest</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isMarkLatest()
* @generated
* @ordered
*/
protected boolean markLatest = MARK_LATEST_EDEFAULT;
/**
* The cached value of the '{@link #getLatestProperty() <em>Latest Property</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getLatestProperty()
* @generated
* @ordered
*/
protected LEntityAttribute latestProperty;
/**
* The default value of the '{@link #isRecordElement() <em>Record Element</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isRecordElement()
* @generated
* @ordered
*/
protected static final boolean RECORD_ELEMENT_EDEFAULT = false;
/**
* The cached value of the '{@link #isRecordElement() <em>Record Element</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isRecordElement()
* @generated
* @ordered
*/
protected boolean recordElement = RECORD_ELEMENT_EDEFAULT;
/**
* The default value of the '{@link #isRecordList() <em>Record List</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isRecordList()
* @generated
* @ordered
*/
protected static final boolean RECORD_LIST_EDEFAULT = false;
/**
* The cached value of the '{@link #isRecordList() <em>Record List</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isRecordList()
* @generated
* @ordered
*/
protected boolean recordList = RECORD_LIST_EDEFAULT;
/**
* The default value of the '{@link #getElementMap() <em>Element Map</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getElementMap()
* @generated
* @ordered
*/
protected static final String ELEMENT_MAP_EDEFAULT = null;
/**
* The cached value of the '{@link #getElementMap() <em>Element Map</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getElementMap()
* @generated
* @ordered
*/
protected String elementMap = ELEMENT_MAP_EDEFAULT;
/**
* The cached value of the '{@link #getLookup() <em>Lookup</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getLookup()
* @generated
* @ordered
*/
protected EList<DataInterchangeLookup> lookup;
/**
* The cached value of the '{@link #getFormat() <em>Format</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getFormat()
* @generated
* @ordered
*/
protected EList<DataInterchangeFormat> format;
/**
* The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getExpression()
* @generated
* @ordered
*/
protected EList<DataInterchangeExpression> expression;
/**
* The cached value of the '{@link #getMappings() <em>Mappings</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMappings()
* @generated
* @ordered
*/
protected EList<DataInterchangeMapping> mappings;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected DataInterchangeBeanImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return DataDSLPackage.Literals.DATA_INTERCHANGE_BEAN;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public LEntity getEntity() {
if (entity != null && entity.eIsProxy()) {
InternalEObject oldEntity = (InternalEObject)entity;
entity = (LEntity)eResolveProxy(oldEntity);
if (entity != oldEntity) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY, oldEntity, entity));
}
}
return entity;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public LEntity basicGetEntity() {
return entity;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setEntity(LEntity newEntity) {
LEntity oldEntity = entity;
entity = newEntity;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY, oldEntity, entity));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isMarkLatest() {
return markLatest;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setMarkLatest(boolean newMarkLatest) {
boolean oldMarkLatest = markLatest;
markLatest = newMarkLatest;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST, oldMarkLatest, markLatest));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public LEntityAttribute getLatestProperty() {
if (latestProperty != null && latestProperty.eIsProxy()) {
InternalEObject oldLatestProperty = (InternalEObject)latestProperty;
latestProperty = (LEntityAttribute)eResolveProxy(oldLatestProperty);
if (latestProperty != oldLatestProperty) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY, oldLatestProperty, latestProperty));
}
}
return latestProperty;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public LEntityAttribute basicGetLatestProperty() {
return latestProperty;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setLatestProperty(LEntityAttribute newLatestProperty) {
LEntityAttribute oldLatestProperty = latestProperty;
latestProperty = newLatestProperty;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY, oldLatestProperty, latestProperty));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isRecordElement() {
return recordElement;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setRecordElement(boolean newRecordElement) {
boolean oldRecordElement = recordElement;
recordElement = newRecordElement;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT, oldRecordElement, recordElement));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isRecordList() {
return recordList;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setRecordList(boolean newRecordList) {
boolean oldRecordList = recordList;
recordList = newRecordList;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST, oldRecordList, recordList));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getElementMap() {
return elementMap;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setElementMap(String newElementMap) {
String oldElementMap = elementMap;
elementMap = newElementMap;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP, oldElementMap, elementMap));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<DataInterchangeLookup> getLookup() {
if (lookup == null) {
lookup = new EObjectContainmentEList<DataInterchangeLookup>(DataInterchangeLookup.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP);
}
return lookup;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<DataInterchangeFormat> getFormat() {
if (format == null) {
format = new EObjectContainmentEList<DataInterchangeFormat>(DataInterchangeFormat.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT);
}
return format;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<DataInterchangeExpression> getExpression() {
if (expression == null) {
expression = new EObjectContainmentEList<DataInterchangeExpression>(DataInterchangeExpression.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION);
}
return expression;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<DataInterchangeMapping> getMappings() {
if (mappings == null) {
mappings = new EObjectContainmentEList<DataInterchangeMapping>(DataInterchangeMapping.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS);
}
return mappings;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
return ((InternalEList<?>)getLookup()).basicRemove(otherEnd, msgs);
case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
return ((InternalEList<?>)getFormat()).basicRemove(otherEnd, msgs);
case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
return ((InternalEList<?>)getExpression()).basicRemove(otherEnd, msgs);
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
return ((InternalEList<?>)getMappings()).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 DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
if (resolve) return getEntity();
return basicGetEntity();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
return isMarkLatest();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
if (resolve) return getLatestProperty();
return basicGetLatestProperty();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
return isRecordElement();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
return isRecordList();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
return getElementMap();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
return getLookup();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
return getFormat();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
return getExpression();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
return getMappings();
}
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 DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
setEntity((LEntity)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
setMarkLatest((Boolean)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
setLatestProperty((LEntityAttribute)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
setRecordElement((Boolean)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
setRecordList((Boolean)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
setElementMap((String)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
getLookup().clear();
getLookup().addAll((Collection<? extends DataInterchangeLookup>)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
getFormat().clear();
getFormat().addAll((Collection<? extends DataInterchangeFormat>)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
getExpression().clear();
getExpression().addAll((Collection<? extends DataInterchangeExpression>)newValue);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
getMappings().clear();
getMappings().addAll((Collection<? extends DataInterchangeMapping>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
setEntity((LEntity)null);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
setMarkLatest(MARK_LATEST_EDEFAULT);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
setLatestProperty((LEntityAttribute)null);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
setRecordElement(RECORD_ELEMENT_EDEFAULT);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
setRecordList(RECORD_LIST_EDEFAULT);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
setElementMap(ELEMENT_MAP_EDEFAULT);
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
getLookup().clear();
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
getFormat().clear();
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
getExpression().clear();
return;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
getMappings().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
return entity != null;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
return markLatest != MARK_LATEST_EDEFAULT;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
return latestProperty != null;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
return recordElement != RECORD_ELEMENT_EDEFAULT;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
return recordList != RECORD_LIST_EDEFAULT;
case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
return ELEMENT_MAP_EDEFAULT == null ? elementMap != null : !ELEMENT_MAP_EDEFAULT.equals(elementMap);
case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
return lookup != null && !lookup.isEmpty();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
return format != null && !format.isEmpty();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
return expression != null && !expression.isEmpty();
case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
return mappings != null && !mappings.isEmpty();
}
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(" (markLatest: ");
result.append(markLatest);
result.append(", recordElement: ");
result.append(recordElement);
result.append(", recordList: ");
result.append(recordList);
result.append(", elementMap: ");
result.append(elementMap);
result.append(')');
return result.toString();
}
} //DataInterchangeBeanImpl