/** * Copyright (c) 2008-2011 Chair for Applied Software Engineering, * Technische Universitaet Muenchen. * 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 * * Contributors: */ package org.eclipse.emf.emfstore.bowling.impl; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; 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.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; import org.eclipse.emf.emfstore.bowling.BowlingPackage; import org.eclipse.emf.emfstore.bowling.Gender; import org.eclipse.emf.emfstore.bowling.Player; import org.eclipse.emf.emfstore.bowling.TournamentType; import org.eclipse.emf.emfstore.bowling.util.BowlingValidator; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Player</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getName <em>Name</em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getDateOfBirth <em>Date Of Birth</em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getHeight <em>Height</em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#isIsProfessional <em>Is Professional</em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getEMails <em>EMails</em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getNumberOfVictories <em>Number Of Victories</em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getPlayedTournamentTypes <em>Played Tournament Types * </em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getWinLossRatio <em>Win Loss Ratio</em>}</li> * <li>{@link org.eclipse.emf.emfstore.bowling.impl.PlayerImpl#getGender <em>Gender</em>}</li> * </ul> * </p> * * @generated */ public class PlayerImpl extends EObjectImpl implements Player { /** * The default value of the '{@link #getName() <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getName() * @generated * @ordered */ protected static final String NAME_EDEFAULT = null; /** * The cached value of the '{@link #getName() <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getName() * @generated * @ordered */ protected String name = NAME_EDEFAULT; /** * The default value of the '{@link #getDateOfBirth() <em>Date Of Birth</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getDateOfBirth() * @generated * @ordered */ protected static final Date DATE_OF_BIRTH_EDEFAULT = null; /** * The cached value of the '{@link #getDateOfBirth() <em>Date Of Birth</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getDateOfBirth() * @generated * @ordered */ protected Date dateOfBirth = DATE_OF_BIRTH_EDEFAULT; /** * The default value of the '{@link #getHeight() <em>Height</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getHeight() * @generated * @ordered */ protected static final double HEIGHT_EDEFAULT = 0.0; /** * The cached value of the '{@link #getHeight() <em>Height</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getHeight() * @generated * @ordered */ protected double height = HEIGHT_EDEFAULT; /** * The default value of the '{@link #isIsProfessional() <em>Is Professional</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #isIsProfessional() * @generated * @ordered */ protected static final boolean IS_PROFESSIONAL_EDEFAULT = false; /** * The cached value of the '{@link #isIsProfessional() <em>Is Professional</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #isIsProfessional() * @generated * @ordered */ protected boolean isProfessional = IS_PROFESSIONAL_EDEFAULT; /** * The cached value of the '{@link #getEMails() <em>EMails</em>}' attribute list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getEMails() * @generated * @ordered */ protected EList<String> eMails; /** * The default value of the '{@link #getNumberOfVictories() <em>Number Of Victories</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getNumberOfVictories() * @generated * @ordered */ protected static final int NUMBER_OF_VICTORIES_EDEFAULT = 0; /** * The cached value of the '{@link #getNumberOfVictories() <em>Number Of Victories</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getNumberOfVictories() * @generated * @ordered */ protected int numberOfVictories = NUMBER_OF_VICTORIES_EDEFAULT; /** * The cached value of the '{@link #getPlayedTournamentTypes() <em>Played Tournament Types</em>}' attribute list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getPlayedTournamentTypes() * @generated * @ordered */ protected EList<TournamentType> playedTournamentTypes; /** * The default value of the '{@link #getWinLossRatio() <em>Win Loss Ratio</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getWinLossRatio() * @generated * @ordered */ protected static final BigDecimal WIN_LOSS_RATIO_EDEFAULT = null; /** * The cached value of the '{@link #getWinLossRatio() <em>Win Loss Ratio</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getWinLossRatio() * @generated * @ordered */ protected BigDecimal winLossRatio = WIN_LOSS_RATIO_EDEFAULT; /** * The default value of the '{@link #getGender() <em>Gender</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getGender() * @generated * @ordered */ protected static final Gender GENDER_EDEFAULT = Gender.FEMALE; /** * The cached value of the '{@link #getGender() <em>Gender</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getGender() * @generated * @ordered */ protected Gender gender = GENDER_EDEFAULT; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ protected PlayerImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ @Override protected EClass eStaticClass() { return BowlingPackage.Literals.PLAYER; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public String getName() { return name; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public void setName(String newName) { final String oldName = name; name = newName; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, BowlingPackage.PLAYER__NAME, oldName, name)); } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public Date getDateOfBirth() { return dateOfBirth; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public void setDateOfBirth(Date newDateOfBirth) { final Date oldDateOfBirth = dateOfBirth; dateOfBirth = newDateOfBirth; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, BowlingPackage.PLAYER__DATE_OF_BIRTH, oldDateOfBirth, dateOfBirth)); } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public double getHeight() { return height; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public void setHeight(double newHeight) { final double oldHeight = height; height = newHeight; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, BowlingPackage.PLAYER__HEIGHT, oldHeight, height)); } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public boolean isIsProfessional() { return isProfessional; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public void setIsProfessional(boolean newIsProfessional) { final boolean oldIsProfessional = isProfessional; isProfessional = newIsProfessional; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, BowlingPackage.PLAYER__IS_PROFESSIONAL, oldIsProfessional, isProfessional)); } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public EList<String> getEMails() { if (eMails == null) { eMails = new EDataTypeUniqueEList<String>(String.class, this, BowlingPackage.PLAYER__EMAILS); } return eMails; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public int getNumberOfVictories() { return numberOfVictories; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public void setNumberOfVictories(int newNumberOfVictories) { final int oldNumberOfVictories = numberOfVictories; numberOfVictories = newNumberOfVictories; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, BowlingPackage.PLAYER__NUMBER_OF_VICTORIES, oldNumberOfVictories, numberOfVictories)); } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public EList<TournamentType> getPlayedTournamentTypes() { if (playedTournamentTypes == null) { playedTournamentTypes = new EDataTypeUniqueEList<TournamentType>(TournamentType.class, this, BowlingPackage.PLAYER__PLAYED_TOURNAMENT_TYPES); } return playedTournamentTypes; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public BigDecimal getWinLossRatio() { return winLossRatio; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public void setWinLossRatio(BigDecimal newWinLossRatio) { final BigDecimal oldWinLossRatio = winLossRatio; winLossRatio = newWinLossRatio; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, BowlingPackage.PLAYER__WIN_LOSS_RATIO, oldWinLossRatio, winLossRatio)); } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public Gender getGender() { return gender; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public void setGender(Gender newGender) { final Gender oldGender = gender; gender = newGender == null ? GENDER_EDEFAULT : newGender; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, BowlingPackage.PLAYER__GENDER, oldGender, gender)); } } /** * <!-- begin-user-doc --> * Validates the player. * * @param chain the diagnostic chain * @param context the context * @return <code>true</code> if no validation errors, <code>false</code> if validation errors * <!-- end-user-doc --> * * @generated NOT */ public boolean validate(DiagnosticChain chain, Map<?, ?> context) { if (getHeight() > 10) { if (chain != null) { chain.add (new BasicDiagnostic (Diagnostic.ERROR, BowlingValidator.DIAGNOSTIC_SOURCE, BowlingValidator.PLAYER__VALIDATE, "Height seems too big.", //$NON-NLS-1$ new Object[] { this, BowlingPackage.eINSTANCE.getPlayer_Height() })); } return false; } return true; } /** * <!-- begin-user-doc --> * . * <!-- end-user-doc --> * * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case BowlingPackage.PLAYER__NAME: return getName(); case BowlingPackage.PLAYER__DATE_OF_BIRTH: return getDateOfBirth(); case BowlingPackage.PLAYER__HEIGHT: return getHeight(); case BowlingPackage.PLAYER__IS_PROFESSIONAL: return isIsProfessional(); case BowlingPackage.PLAYER__EMAILS: return getEMails(); case BowlingPackage.PLAYER__NUMBER_OF_VICTORIES: return getNumberOfVictories(); case BowlingPackage.PLAYER__PLAYED_TOURNAMENT_TYPES: return getPlayedTournamentTypes(); case BowlingPackage.PLAYER__WIN_LOSS_RATIO: return getWinLossRatio(); case BowlingPackage.PLAYER__GENDER: return getGender(); } 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 BowlingPackage.PLAYER__NAME: setName((String) newValue); return; case BowlingPackage.PLAYER__DATE_OF_BIRTH: setDateOfBirth((Date) newValue); return; case BowlingPackage.PLAYER__HEIGHT: setHeight((Double) newValue); return; case BowlingPackage.PLAYER__IS_PROFESSIONAL: setIsProfessional((Boolean) newValue); return; case BowlingPackage.PLAYER__EMAILS: getEMails().clear(); getEMails().addAll((Collection<? extends String>) newValue); return; case BowlingPackage.PLAYER__NUMBER_OF_VICTORIES: setNumberOfVictories((Integer) newValue); return; case BowlingPackage.PLAYER__PLAYED_TOURNAMENT_TYPES: getPlayedTournamentTypes().clear(); getPlayedTournamentTypes().addAll((Collection<? extends TournamentType>) newValue); return; case BowlingPackage.PLAYER__WIN_LOSS_RATIO: setWinLossRatio((BigDecimal) newValue); return; case BowlingPackage.PLAYER__GENDER: setGender((Gender) newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case BowlingPackage.PLAYER__NAME: setName(NAME_EDEFAULT); return; case BowlingPackage.PLAYER__DATE_OF_BIRTH: setDateOfBirth(DATE_OF_BIRTH_EDEFAULT); return; case BowlingPackage.PLAYER__HEIGHT: setHeight(HEIGHT_EDEFAULT); return; case BowlingPackage.PLAYER__IS_PROFESSIONAL: setIsProfessional(IS_PROFESSIONAL_EDEFAULT); return; case BowlingPackage.PLAYER__EMAILS: getEMails().clear(); return; case BowlingPackage.PLAYER__NUMBER_OF_VICTORIES: setNumberOfVictories(NUMBER_OF_VICTORIES_EDEFAULT); return; case BowlingPackage.PLAYER__PLAYED_TOURNAMENT_TYPES: getPlayedTournamentTypes().clear(); return; case BowlingPackage.PLAYER__WIN_LOSS_RATIO: setWinLossRatio(WIN_LOSS_RATIO_EDEFAULT); return; case BowlingPackage.PLAYER__GENDER: setGender(GENDER_EDEFAULT); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case BowlingPackage.PLAYER__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); case BowlingPackage.PLAYER__DATE_OF_BIRTH: return DATE_OF_BIRTH_EDEFAULT == null ? dateOfBirth != null : !DATE_OF_BIRTH_EDEFAULT.equals(dateOfBirth); case BowlingPackage.PLAYER__HEIGHT: return height != HEIGHT_EDEFAULT; case BowlingPackage.PLAYER__IS_PROFESSIONAL: return isProfessional != IS_PROFESSIONAL_EDEFAULT; case BowlingPackage.PLAYER__EMAILS: return eMails != null && !eMails.isEmpty(); case BowlingPackage.PLAYER__NUMBER_OF_VICTORIES: return numberOfVictories != NUMBER_OF_VICTORIES_EDEFAULT; case BowlingPackage.PLAYER__PLAYED_TOURNAMENT_TYPES: return playedTournamentTypes != null && !playedTournamentTypes.isEmpty(); case BowlingPackage.PLAYER__WIN_LOSS_RATIO: return WIN_LOSS_RATIO_EDEFAULT == null ? winLossRatio != null : !WIN_LOSS_RATIO_EDEFAULT .equals(winLossRatio); case BowlingPackage.PLAYER__GENDER: return gender != GENDER_EDEFAULT; } return super.eIsSet(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ @Override public String toString() { if (eIsProxy()) { return super.toString(); } final StringBuffer result = new StringBuffer(super.toString()); result.append(" (name: "); //$NON-NLS-1$ result.append(name); result.append(", dateOfBirth: "); //$NON-NLS-1$ result.append(dateOfBirth); result.append(", height: "); //$NON-NLS-1$ result.append(height); result.append(", isProfessional: "); //$NON-NLS-1$ result.append(isProfessional); result.append(", eMails: "); //$NON-NLS-1$ result.append(eMails); result.append(", numberOfVictories: "); //$NON-NLS-1$ result.append(numberOfVictories); result.append(", playedTournamentTypes: "); //$NON-NLS-1$ result.append(playedTournamentTypes); result.append(", winLossRatio: "); //$NON-NLS-1$ result.append(winLossRatio); result.append(", gender: "); //$NON-NLS-1$ result.append(gender); result.append(')'); return result.toString(); } } // PlayerImpl