/* Copyright (C) 2011 by Claas Wilke (claas.wilke@tu-dresden.de) This file is part of Dresden OCL. Dresden OCL is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Dresden OCL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Dresden OCL. If not, see <http://www.gnu.org/licenses/>. */ package org.dresdenocl.metrics.metric.impl; import java.util.Map; import org.dresdenocl.metrics.metric.ConstraintMetric; import org.dresdenocl.metrics.metric.MetricPackage; 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.dresdenocl.pivotmodel.Constraint; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Constraint Metric</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getExpressionCount <em>Expression Count</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getExpressionDepth <em>Expression Depth</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getCalledOperations <em>Called Operations</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getCalledProperties <em>Called Properties</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getReferredConstraint <em>Referred Constraint</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getNumberOfIfExpressions <em>Number Of If Expressions</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getNumberOfLetExpressions <em>Number Of Let Expressions</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getUsedIterators <em>Used Iterators</em>}</li> * <li>{@link org.dresdenocl.metrics.metric.impl.ConstraintMetricImpl#getUsedLiterals <em>Used Literals</em>}</li> * </ul> * </p> * * @generated */ public class ConstraintMetricImpl extends MetricImpl implements ConstraintMetric { /** * The default value of the '{@link #getExpressionCount() <em>Expression Count</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getExpressionCount() * @generated * @ordered */ protected static final int EXPRESSION_COUNT_EDEFAULT = 0; /** * The cached value of the '{@link #getExpressionCount() <em>Expression Count</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getExpressionCount() * @generated * @ordered */ protected int expressionCount = EXPRESSION_COUNT_EDEFAULT; /** * The default value of the '{@link #getExpressionDepth() <em>Expression Depth</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getExpressionDepth() * @generated * @ordered */ protected static final int EXPRESSION_DEPTH_EDEFAULT = 0; /** * The cached value of the '{@link #getExpressionDepth() <em>Expression Depth</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getExpressionDepth() * @generated * @ordered */ protected int expressionDepth = EXPRESSION_DEPTH_EDEFAULT; /** * The cached value of the '{@link #getCalledOperations() <em>Called Operations</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getCalledOperations() * @generated * @ordered */ protected Map<String, Integer> calledOperations; /** * The cached value of the '{@link #getCalledProperties() <em>Called Properties</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getCalledProperties() * @generated * @ordered */ protected Map<String, Integer> calledProperties; /** * The cached value of the '{@link #getReferredConstraint() <em>Referred Constraint</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getReferredConstraint() * @generated * @ordered */ protected Constraint referredConstraint; /** * The default value of the '{@link #getNumberOfIfExpressions() <em>Number Of If Expressions</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getNumberOfIfExpressions() * @generated * @ordered */ protected static final int NUMBER_OF_IF_EXPRESSIONS_EDEFAULT = 0; /** * The cached value of the '{@link #getNumberOfIfExpressions() <em>Number Of If Expressions</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getNumberOfIfExpressions() * @generated * @ordered */ protected int numberOfIfExpressions = NUMBER_OF_IF_EXPRESSIONS_EDEFAULT; /** * The default value of the '{@link #getNumberOfLetExpressions() <em>Number Of Let Expressions</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getNumberOfLetExpressions() * @generated * @ordered */ protected static final int NUMBER_OF_LET_EXPRESSIONS_EDEFAULT = 0; /** * The cached value of the '{@link #getNumberOfLetExpressions() <em>Number Of Let Expressions</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getNumberOfLetExpressions() * @generated * @ordered */ protected int numberOfLetExpressions = NUMBER_OF_LET_EXPRESSIONS_EDEFAULT; /** * The cached value of the '{@link #getUsedIterators() <em>Used Iterators</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getUsedIterators() * @generated * @ordered */ protected Map<String, Integer> usedIterators; /** * The cached value of the '{@link #getUsedLiterals() <em>Used Literals</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getUsedLiterals() * @generated * @ordered */ protected Map<String, Integer> usedLiterals; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ConstraintMetricImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return MetricPackage.Literals.CONSTRAINT_METRIC; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getExpressionCount() { return expressionCount; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setExpressionCount(int newExpressionCount) { int oldExpressionCount = expressionCount; expressionCount = newExpressionCount; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__EXPRESSION_COUNT, oldExpressionCount, expressionCount)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getExpressionDepth() { return expressionDepth; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setExpressionDepth(int newExpressionDepth) { int oldExpressionDepth = expressionDepth; expressionDepth = newExpressionDepth; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__EXPRESSION_DEPTH, oldExpressionDepth, expressionDepth)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Map<String, Integer> getCalledOperations() { return calledOperations; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setCalledOperations(Map<String, Integer> newCalledOperations) { Map<String, Integer> oldCalledOperations = calledOperations; calledOperations = newCalledOperations; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__CALLED_OPERATIONS, oldCalledOperations, calledOperations)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Map<String, Integer> getCalledProperties() { return calledProperties; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setCalledProperties(Map<String, Integer> newCalledProperties) { Map<String, Integer> oldCalledProperties = calledProperties; calledProperties = newCalledProperties; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__CALLED_PROPERTIES, oldCalledProperties, calledProperties)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Constraint getReferredConstraint() { if (referredConstraint != null && referredConstraint.eIsProxy()) { InternalEObject oldReferredConstraint = (InternalEObject)referredConstraint; referredConstraint = (Constraint)eResolveProxy(oldReferredConstraint); if (referredConstraint != oldReferredConstraint) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, MetricPackage.CONSTRAINT_METRIC__REFERRED_CONSTRAINT, oldReferredConstraint, referredConstraint)); } } return referredConstraint; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Constraint basicGetReferredConstraint() { return referredConstraint; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setReferredConstraint(Constraint newReferredConstraint) { Constraint oldReferredConstraint = referredConstraint; referredConstraint = newReferredConstraint; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__REFERRED_CONSTRAINT, oldReferredConstraint, referredConstraint)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getNumberOfIfExpressions() { return numberOfIfExpressions; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setNumberOfIfExpressions(int newNumberOfIfExpressions) { int oldNumberOfIfExpressions = numberOfIfExpressions; numberOfIfExpressions = newNumberOfIfExpressions; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_IF_EXPRESSIONS, oldNumberOfIfExpressions, numberOfIfExpressions)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getNumberOfLetExpressions() { return numberOfLetExpressions; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setNumberOfLetExpressions(int newNumberOfLetExpressions) { int oldNumberOfLetExpressions = numberOfLetExpressions; numberOfLetExpressions = newNumberOfLetExpressions; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_LET_EXPRESSIONS, oldNumberOfLetExpressions, numberOfLetExpressions)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Map<String, Integer> getUsedIterators() { return usedIterators; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setUsedIterators(Map<String, Integer> newUsedIterators) { Map<String, Integer> oldUsedIterators = usedIterators; usedIterators = newUsedIterators; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__USED_ITERATORS, oldUsedIterators, usedIterators)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Map<String, Integer> getUsedLiterals() { return usedLiterals; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setUsedLiterals(Map<String, Integer> newUsedLiterals) { Map<String, Integer> oldUsedLiterals = usedLiterals; usedLiterals = newUsedLiterals; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, MetricPackage.CONSTRAINT_METRIC__USED_LITERALS, oldUsedLiterals, usedLiterals)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case MetricPackage.CONSTRAINT_METRIC__EXPRESSION_COUNT: return getExpressionCount(); case MetricPackage.CONSTRAINT_METRIC__EXPRESSION_DEPTH: return getExpressionDepth(); case MetricPackage.CONSTRAINT_METRIC__CALLED_OPERATIONS: return getCalledOperations(); case MetricPackage.CONSTRAINT_METRIC__CALLED_PROPERTIES: return getCalledProperties(); case MetricPackage.CONSTRAINT_METRIC__REFERRED_CONSTRAINT: if (resolve) return getReferredConstraint(); return basicGetReferredConstraint(); case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_IF_EXPRESSIONS: return getNumberOfIfExpressions(); case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_LET_EXPRESSIONS: return getNumberOfLetExpressions(); case MetricPackage.CONSTRAINT_METRIC__USED_ITERATORS: return getUsedIterators(); case MetricPackage.CONSTRAINT_METRIC__USED_LITERALS: return getUsedLiterals(); } 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 MetricPackage.CONSTRAINT_METRIC__EXPRESSION_COUNT: setExpressionCount((Integer)newValue); return; case MetricPackage.CONSTRAINT_METRIC__EXPRESSION_DEPTH: setExpressionDepth((Integer)newValue); return; case MetricPackage.CONSTRAINT_METRIC__CALLED_OPERATIONS: setCalledOperations((Map<String, Integer>)newValue); return; case MetricPackage.CONSTRAINT_METRIC__CALLED_PROPERTIES: setCalledProperties((Map<String, Integer>)newValue); return; case MetricPackage.CONSTRAINT_METRIC__REFERRED_CONSTRAINT: setReferredConstraint((Constraint)newValue); return; case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_IF_EXPRESSIONS: setNumberOfIfExpressions((Integer)newValue); return; case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_LET_EXPRESSIONS: setNumberOfLetExpressions((Integer)newValue); return; case MetricPackage.CONSTRAINT_METRIC__USED_ITERATORS: setUsedIterators((Map<String, Integer>)newValue); return; case MetricPackage.CONSTRAINT_METRIC__USED_LITERALS: setUsedLiterals((Map<String, Integer>)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case MetricPackage.CONSTRAINT_METRIC__EXPRESSION_COUNT: setExpressionCount(EXPRESSION_COUNT_EDEFAULT); return; case MetricPackage.CONSTRAINT_METRIC__EXPRESSION_DEPTH: setExpressionDepth(EXPRESSION_DEPTH_EDEFAULT); return; case MetricPackage.CONSTRAINT_METRIC__CALLED_OPERATIONS: setCalledOperations((Map<String, Integer>)null); return; case MetricPackage.CONSTRAINT_METRIC__CALLED_PROPERTIES: setCalledProperties((Map<String, Integer>)null); return; case MetricPackage.CONSTRAINT_METRIC__REFERRED_CONSTRAINT: setReferredConstraint((Constraint)null); return; case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_IF_EXPRESSIONS: setNumberOfIfExpressions(NUMBER_OF_IF_EXPRESSIONS_EDEFAULT); return; case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_LET_EXPRESSIONS: setNumberOfLetExpressions(NUMBER_OF_LET_EXPRESSIONS_EDEFAULT); return; case MetricPackage.CONSTRAINT_METRIC__USED_ITERATORS: setUsedIterators((Map<String, Integer>)null); return; case MetricPackage.CONSTRAINT_METRIC__USED_LITERALS: setUsedLiterals((Map<String, Integer>)null); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case MetricPackage.CONSTRAINT_METRIC__EXPRESSION_COUNT: return expressionCount != EXPRESSION_COUNT_EDEFAULT; case MetricPackage.CONSTRAINT_METRIC__EXPRESSION_DEPTH: return expressionDepth != EXPRESSION_DEPTH_EDEFAULT; case MetricPackage.CONSTRAINT_METRIC__CALLED_OPERATIONS: return calledOperations != null; case MetricPackage.CONSTRAINT_METRIC__CALLED_PROPERTIES: return calledProperties != null; case MetricPackage.CONSTRAINT_METRIC__REFERRED_CONSTRAINT: return referredConstraint != null; case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_IF_EXPRESSIONS: return numberOfIfExpressions != NUMBER_OF_IF_EXPRESSIONS_EDEFAULT; case MetricPackage.CONSTRAINT_METRIC__NUMBER_OF_LET_EXPRESSIONS: return numberOfLetExpressions != NUMBER_OF_LET_EXPRESSIONS_EDEFAULT; case MetricPackage.CONSTRAINT_METRIC__USED_ITERATORS: return usedIterators != null; case MetricPackage.CONSTRAINT_METRIC__USED_LITERALS: return usedLiterals != null; } 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(" (expressionCount: "); result.append(expressionCount); result.append(", expressionDepth: "); result.append(expressionDepth); result.append(", calledOperations: "); result.append(calledOperations); result.append(", calledProperties: "); result.append(calledProperties); result.append(", numberOfIfExpressions: "); result.append(numberOfIfExpressions); result.append(", numberOfLetExpressions: "); result.append(numberOfLetExpressions); result.append(", usedIterators: "); result.append(usedIterators); result.append(", usedLiterals: "); result.append(usedLiterals); result.append(')'); return result.toString(); } } //ConstraintMetricImpl