/** * 2014 Urs Zeidler */ package de.urszeidler.eclipse.shr5Management.impl; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; 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.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.util.EObjectValidator; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import de.urszeidler.eclipse.shr5.AbstraktPersona; import de.urszeidler.eclipse.shr5.GebundenerGeist; import de.urszeidler.eclipse.shr5.KiAdept; import de.urszeidler.eclipse.shr5.KiKraft; import de.urszeidler.eclipse.shr5.KoerperPersona; import de.urszeidler.eclipse.shr5.MysticAdept; import de.urszeidler.eclipse.shr5.PersonaFertigkeit; import de.urszeidler.eclipse.shr5.PersonaMartialartStyle; import de.urszeidler.eclipse.shr5.Shr5Package; import de.urszeidler.eclipse.shr5.Zauberer; import de.urszeidler.eclipse.shr5Management.Adept; import de.urszeidler.eclipse.shr5Management.Attributes; import de.urszeidler.eclipse.shr5Management.GeneratorState; import de.urszeidler.eclipse.shr5Management.IncreaseCharacterPart; import de.urszeidler.eclipse.shr5Management.ManagedCharacter; import de.urszeidler.eclipse.shr5Management.MetaType; import de.urszeidler.eclipse.shr5Management.ModelPlugin; import de.urszeidler.eclipse.shr5Management.Resourcen; import de.urszeidler.eclipse.shr5Management.Shr5Generator; import de.urszeidler.eclipse.shr5Management.Shr5System; import de.urszeidler.eclipse.shr5Management.Shr5managementPackage; import de.urszeidler.eclipse.shr5Management.Skill; import de.urszeidler.eclipse.shr5Management.SpecialType; import de.urszeidler.eclipse.shr5Management.Spellcaster; import de.urszeidler.eclipse.shr5Management.Technomancer; import de.urszeidler.eclipse.shr5Management.util.ShadowrunManagmentTools; import de.urszeidler.eclipse.shr5Management.util.Shr5managementValidator; /** * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Shr5 Generator</b></em>'. <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getResourcen <em>Resourcen</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getSkills <em>Skills</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getAttribute <em>Attribute</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getMetaType <em>Meta Type</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getMagic <em>Magic</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getKarmaToResource <em>Karma To Resource</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getKarmaSpend <em>Karma Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getAttributeSpend <em>Attribute Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getResourceSpend <em>Resource Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getConnectionSpend <em>Connection Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getSkillPointSpend <em>Skill Point Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getSpecialPointSpend <em>Special Point Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getGroupPointSpend <em>Group Point Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getKnownlegePointSpend <em>Knownlege Point Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getSpellPointSpend <em>Spell Point Spend</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getStartKarma <em>Start Karma</em>}</li> * <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5GeneratorImpl#getStartResources <em>Start Resources</em>}</li> * </ul> * </p> * * @generated */ public class Shr5GeneratorImpl extends Shr5RuleGeneratorImpl<Shr5System> implements Shr5Generator { /** * The cached value of the '{@link #getResourcen() <em>Resourcen</em>}' reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getResourcen() * @generated * @ordered */ protected Resourcen resourcen; /** * The cached value of the '{@link #getSkills() <em>Skills</em>}' reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getSkills() * @generated * @ordered */ protected Skill skills; /** * The cached value of the '{@link #getAttribute() <em>Attribute</em>}' reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getAttribute() * @generated * @ordered */ protected Attributes attribute; /** * The cached value of the '{@link #getMetaType() <em>Meta Type</em>}' reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getMetaType() * @generated * @ordered */ protected MetaType metaType; /** * The cached value of the '{@link #getMagic() <em>Magic</em>}' reference. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getMagic() * @generated * @ordered */ protected SpecialType magic; /** * The default value of the '{@link #getKarmaToResource() <em>Karma To Resource</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getKarmaToResource() * @generated * @ordered */ protected static final int KARMA_TO_RESOURCE_EDEFAULT = 0; /** * The cached value of the '{@link #getKarmaToResource() <em>Karma To Resource</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getKarmaToResource() * @generated * @ordered */ protected int karmaToResource = KARMA_TO_RESOURCE_EDEFAULT; /** * The default value of the '{@link #getKarmaSpend() <em>Karma Spend</em>}' attribute. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getKarmaSpend() * @generated * @ordered */ protected static final int KARMA_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getAttributeSpend() <em>Attribute Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getAttributeSpend() * @generated * @ordered */ protected static final int ATTRIBUTE_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getResourceSpend() <em>Resource Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getResourceSpend() * @generated * @ordered */ protected static final int RESOURCE_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getConnectionSpend() <em>Connection Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getConnectionSpend() * @generated * @ordered */ protected static final int CONNECTION_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getSkillPointSpend() <em>Skill Point Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSkillPointSpend() * @generated * @ordered */ protected static final int SKILL_POINT_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getSpecialPointSpend() <em>Special Point Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSpecialPointSpend() * @generated * @ordered */ protected static final int SPECIAL_POINT_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getGroupPointSpend() <em>Group Point Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getGroupPointSpend() * @generated * @ordered */ protected static final int GROUP_POINT_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getKnownlegePointSpend() <em>Knownlege Point Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getKnownlegePointSpend() * @generated * @ordered */ protected static final int KNOWNLEGE_POINT_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getSpellPointSpend() <em>Spell Point Spend</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSpellPointSpend() * @generated * @ordered */ protected static final int SPELL_POINT_SPEND_EDEFAULT = 0; /** * The default value of the '{@link #getStartKarma() <em>Start Karma</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getStartKarma() * @generated * @ordered */ protected static final int START_KARMA_EDEFAULT = 0; /** * The cached value of the '{@link #getStartKarma() <em>Start Karma</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getStartKarma() * @generated * @ordered */ protected int startKarma = START_KARMA_EDEFAULT; /** * The default value of the '{@link #getStartResources() <em>Start Resources</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getStartResources() * @generated * @ordered */ protected static final int START_RESOURCES_EDEFAULT = 0; /** * The cached value of the '{@link #getStartResources() <em>Start Resources</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getStartResources() * @generated * @ordered */ protected int startResources = START_RESOURCES_EDEFAULT; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ protected Shr5GeneratorImpl() { super(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return Shr5managementPackage.Literals.SHR5_GENERATOR; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Resourcen getResourcen() { if (resourcen != null && resourcen.eIsProxy()) { InternalEObject oldResourcen = (InternalEObject)resourcen; resourcen = (Resourcen)eResolveProxy(oldResourcen); if (resourcen != oldResourcen) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, Shr5managementPackage.SHR5_GENERATOR__RESOURCEN, oldResourcen, resourcen)); } } return resourcen; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Resourcen basicGetResourcen() { return resourcen; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setResourcen(Resourcen newResourcen) { Resourcen oldResourcen = resourcen; resourcen = newResourcen; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__RESOURCEN, oldResourcen, resourcen)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Skill getSkills() { if (skills != null && skills.eIsProxy()) { InternalEObject oldSkills = (InternalEObject)skills; skills = (Skill)eResolveProxy(oldSkills); if (skills != oldSkills) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, Shr5managementPackage.SHR5_GENERATOR__SKILLS, oldSkills, skills)); } } return skills; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Skill basicGetSkills() { return skills; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setSkills(Skill newSkills) { Skill oldSkills = skills; skills = newSkills; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__SKILLS, oldSkills, skills)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Attributes getAttribute() { if (attribute != null && attribute.eIsProxy()) { InternalEObject oldAttribute = (InternalEObject)attribute; attribute = (Attributes)eResolveProxy(oldAttribute); if (attribute != oldAttribute) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE, oldAttribute, attribute)); } } return attribute; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Attributes basicGetAttribute() { return attribute; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setAttribute(Attributes newAttribute) { Attributes oldAttribute = attribute; attribute = newAttribute; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE, oldAttribute, attribute)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public MetaType getMetaType() { if (metaType != null && metaType.eIsProxy()) { InternalEObject oldMetaType = (InternalEObject)metaType; metaType = (MetaType)eResolveProxy(oldMetaType); if (metaType != oldMetaType) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, Shr5managementPackage.SHR5_GENERATOR__META_TYPE, oldMetaType, metaType)); } } return metaType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public MetaType basicGetMetaType() { return metaType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setMetaType(MetaType newMetaType) { MetaType oldMetaType = metaType; metaType = newMetaType; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__META_TYPE, oldMetaType, metaType)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public SpecialType getMagic() { if (magic != null && magic.eIsProxy()) { InternalEObject oldMagic = (InternalEObject)magic; magic = (SpecialType)eResolveProxy(oldMagic); if (magic != oldMagic) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, Shr5managementPackage.SHR5_GENERATOR__MAGIC, oldMagic, magic)); } } return magic; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public SpecialType basicGetMagic() { return magic; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setMagic(SpecialType newMagic) { SpecialType oldMagic = magic; magic = newMagic; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__MAGIC, oldMagic, magic)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public int getKarmaToResource() { return karmaToResource; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated not */ public void setKarmaToResource(int newKarmaToResource) { int oldKarmaToResource = karmaToResource; karmaToResource = newKarmaToResource; if (eNotificationRequired()) { eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__KARMA_TO_RESOURCE, oldKarmaToResource, karmaToResource)); eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__KARMA_SPEND, oldKarmaToResource, karmaToResource)); eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__RESOURCE_SPEND, oldKarmaToResource, karmaToResource)); } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated not */ public int getKarmaSpend() { if (getCharacter() == null || getCharacter().getPersona() == null) return 0; int karmaKosten = 0; AbstraktPersona persona = getCharacter().getPersona(); if (persona instanceof KoerperPersona) { KoerperPersona kp = (KoerperPersona)persona; karmaKosten = karmaKosten + (ShadowrunManagmentTools.calcQuallityKarmaCost(kp.getEigenschaften())); } if (persona instanceof MysticAdept) { int sum = 0; MysticAdept ma = (MysticAdept)persona; EList<KiKraft> kikraft = ma.getKikraft(); for (KiKraft kraft : kikraft) { sum = sum + kraft.getKraftpunkte(); } sum = (int)Math.floor(sum / 100f); karmaKosten = karmaKosten + (sum * getGenerator().getKarmaToMagicFactor() * -1); } if (persona instanceof Zauberer) { Zauberer zauberer = (Zauberer)persona; EList<GebundenerGeist> gebundeneGeister = zauberer.getGebundeneGeister(); int sum = 0; for (GebundenerGeist gebundenerGeist : gebundeneGeister) { sum = sum + gebundenerGeist.getDienste(); } karmaKosten = karmaKosten + (sum * getGenerator().getBoundSprititServiceCost()); } if (!persona.getMartialartStyles().isEmpty() && getGenerator().getCharacterAdvancements() != null) { int style = 0; int tequ = 0; IncreaseCharacterPart mas = ShadowrunManagmentTools.findAdvancment(getGenerator().getCharacterAdvancements().getCharacterAdvancements(), Shr5Package.Literals.PERSONA_MARTIALART_STYLE); IncreaseCharacterPart mat = ShadowrunManagmentTools.findAdvancment(getGenerator().getCharacterAdvancements().getCharacterAdvancements(), Shr5Package.Literals.PERSONA_MARTIALART_TECHNIQUE); if (mas != null && mat != null) { for (PersonaFertigkeit pf : persona.getFertigkeiten()) { ImmutableList<PersonaMartialartStyle> list = FluentIterable.from(pf.getSpezialisierungen()).filter(PersonaMartialartStyle.class) .toList(); for (PersonaMartialartStyle ms : list) { tequ += Math.max(ms.getTechniques().size()-getGenerator().getFreeMartialArtTechniques(),0); } style += list.size(); } karmaKosten += mas.getKarmaFactor() * style + mat.getKarmaFactor() * tequ; } } int karmaSpend = ShadowrunManagmentTools.getKarmaSpend(getCharacter()) * -1; karmaKosten = karmaKosten + karmaSpend; int spendByConnections = 0; int allPoints = ShadowrunManagmentTools.calcConnectionsPoints(getCharacter(), getGenerator()); int pointsSpend = getConnectionSpend(); if (allPoints - pointsSpend < 0) spendByConnections = Math.abs(allPoints - pointsSpend); karmaKosten = karmaKosten + spendByConnections; karmaKosten = karmaKosten + getKarmaToResource(); return karmaKosten;// Math.abs(karmaKosten) + getKarmaToResource() + Math.abs(karmaSpend) + spendByConnections; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getAttributeSpend() { if (getAttribute() == null) return -1; return getAttribute().calcAttributesSpend(getCharacter()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getResourceSpend() { if (getResourcen() == null) return -1; return getResourcen().calcResourceSpend(getCharacter()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getConnectionSpend() { ManagedCharacter managedCharacter = getCharacter(); if (managedCharacter == null) return -1; return ShadowrunManagmentTools.calcConnectionsSpend(managedCharacter); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getSkillPointSpend() { if (getSkills() == null) return -1; return getSkills().calcSkillSpend(getCharacter()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getSpecialPointSpend() { if (getMetaType() == null) return -1; return getMetaType().calcSpecialPointsSpend(getCharacter()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getGroupPointSpend() { if (getSkills() == null) return -1; return getSkills().calcGroupSpend(getCharacter()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getKnownlegePointSpend() { if (getSkills() == null) return -1; return getSkills().calcKnowledgeSkillSpend(getCharacter()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public int getSpellPointSpend() { if (getMagic() == null) return -1; if (getMagic() instanceof Spellcaster) { Spellcaster sc = (Spellcaster)getMagic(); return sc.calcSpellPointsSpend(getCharacter()); } else if (getMagic() instanceof Technomancer) { Technomancer tm = (Technomancer)getMagic(); tm.calcComplexFormsSpend(getCharacter()); } return -1; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getStartKarma() { return startKarma; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setStartKarma(int newStartKarma) { int oldStartKarma = startKarma; startKarma = newStartKarma; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__START_KARMA, oldStartKarma, startKarma)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getStartResources() { return startResources; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setStartResources(int newStartResources) { int oldStartResources = startResources; startResources = newStartResources; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, Shr5managementPackage.SHR5_GENERATOR__START_RESOURCES, oldStartResources, startResources)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated not */ public boolean hasCategoryOnlyOnce(DiagnosticChain diagnostics, Map<Object, Object> context) { if (state == GeneratorState.COMMITED) return true; HashSet<String> set = new HashSet<String>(); List<String> doubles = new ArrayList<String>(); if (getMetaType() != null) set.add(getMetaType().getCategorieName()); if (getAttribute() != null) if (!set.add(getAttribute().getCategorieName())) { doubles.add(getAttribute().getCategorieName()); } if (getMagic() != null) if (!set.add(getMagic().getCategorieName())) { doubles.add(getMagic().getCategorieName()); } if (getSkills() != null) if (!set.add(getSkills().getCategorieName())) { doubles.add(getSkills().getCategorieName()); } if (getResourcen() != null) if (!set.add(getResourcen().getCategorieName())) { doubles.add(getResourcen().getCategorieName()); } String doubleStr = ""; if (!doubles.isEmpty()) doubleStr = "Categories choosen twice: " + doubles.toString(); if (set.size() != 5) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_CATEGORY_ONLY_ONCE, ModelPlugin.INSTANCE.getString("_UI_CategoryOnlyOnce", new Object[]{ doubleStr, EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.CHARACTER_GENERATOR__GENERATOR })); } return false; } return true; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (!canValidate() || getGenerator() == null || getSkills() == null || getAttribute() == null || getResourcen() == null || getMetaType() == null || getMagic() == null || getCharacter() == null) return true; boolean spendAll = hasSpendAllAttributesPoints(null, null) && hasSpendAllConnectionPoints(null, null) && hasSpendAllGroupPoints(null, null) && hasSpendAllKarmaPoints(null, null) && hasSpendAllKnowlegeSkillPoints(null, null) && hasSpendAllMagicPoints(null, null) && hasSpendAllMagicSkillsPoints(null, null) && hasSpendAllResourcePoints(null, null) && hasSpendAllSkillPoints(null, null) && hasSpendAllSpecialPoints(null, null) && hasSpendAllSpecialTypePoints(null, null) && hasSpendAllSpellPoints(null, null) && hasOnlyAllowedSources(null, null); // int karmaPoints = getShr5Generator().getKarmaPoints(); // // boolean haseSpendAllPoints = false; // if (magic instanceof Spellcaster) { // Spellcaster sc = (Spellcaster)magic; // if (sc.calcSpellPointsSpend(getCharacter()) != sc.getSpellPoints()) // haseSpendAllPoints = true; // } else if (magic instanceof Technomancer) { // Technomancer tm = (Technomancer)magic; // if (tm.calcComplexFormsSpend(getCharacter()) != tm.getComplexForms()) // haseSpendAllPoints = true; // } // // int skillPoints = getSkills().getSkillPoints(); // int groupPoints = getSkills().getGroupPoints(); // boolean notAllSpend = haseSpendAllPoints || getKarmaSpend() != karmaPoints // || getAttribute().calcAttributesSpend(getCharacter()) != getAttribute().getAttibutePoints() // || getShr5Generator().getMaxResourceToKeep() < getResourcen().getResource() - getResourcen().calcResourceSpend(getCharacter()) // || getMagic().calcSkillsSpend(getCharacter()) != getMagic().getSkillNumber() // || getMetaType().calcSpecialPointsSpend(getCharacter()) != getMetaType().getSpecialPoints() // || getSkills().calcSkillSpend(getCharacter()) != skillPoints || getSkills().calcGroupSpend(getCharacter()) != groupPoints; // System.out.println(" " + !spendAll + " " + notAllSpend); if (!spendAll) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_SPEND_ALL_POINTS, ModelPlugin.INSTANCE.getString("_UI_NotSpendAllPoints", new Object[]{ "hasSpendAllPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.CHARACTER_GENERATOR__GENERATOR })); } return false; } return true; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllAttributesPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getAttribute() == null) return true; if (state == GeneratorState.COMMITED) return true; int diff = getAttribute().getAttibutePoints() - getAttributeSpend(); if (diff != 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_ATTRIBUTES_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllAttributesPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More") }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__ATTRIBUTE })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllSkillPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getSkills() == null) return true; if (state == GeneratorState.COMMITED) return true; int skillPoints = getSkills().getSkillPoints(); int groupPoints = getSkills().getGroupPoints(); int skillLeft = skillPoints - getSkillPointSpend(); int groupLeft = groupPoints - getSkills().calcGroupSpend(getCharacter()); if (skillLeft != 0 || groupLeft != 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_SKILL_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendSkillAllPoints", new Object[]{ skillLeft, groupLeft, "hasSpendAllSkillPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__SKILLS })); } return false; } return true; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllSpecialPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getMetaType() == null) return true; if (state == GeneratorState.COMMITED) return true; int diff = getMetaType().getSpecialPoints() - getSpecialPointSpend(); if (diff != 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_SPECIAL_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllSpecialPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More") }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__META_TYPE })); } return false; } return true; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated not */ @Deprecated public boolean hasSpendAllSpecialTypePoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getMagic() == null) return true; if (state == GeneratorState.COMMITED) return true; // boolean hasSpendAllPoints = false; // if (magic instanceof Spellcaster) { // Spellcaster sc = (Spellcaster)magic; // if (sc.calcSpellPointsSpend(getCharacter()) != sc.getSpellPoints()) // hasSpendAllPoints = true; // } else if (magic instanceof Technomancer) { // Technomancer tm = (Technomancer)magic; // if (tm.calcComplexFormsSpend(getCharacter()) != tm.getComplexForms()) // hasSpendAllPoints = true; // } hasSpendAllPoints = hasSpendAllMagicPoints(null, null) && hasSpendAllMagicSkillsPoints(null, null); if (!hasSpendAllPoints) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_SPECIAL_TYPE_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllSpecialTypePoints", new Object[]{ "hasSpendAllSpecialTypePoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__MAGIC })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllConnectionPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getGenerator() == null) return true; if (state == GeneratorState.COMMITED) return true; ManagedCharacter managedCharacter = getCharacter(); if (managedCharacter == null) return true; AbstraktPersona persona = managedCharacter.getPersona(); if (persona == null) return true; int allPoints = ShadowrunManagmentTools.calcConnectionsPoints(managedCharacter, getGenerator()); int pointsSpend = getConnectionSpend(); int diff = allPoints - pointsSpend; if (diff > 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_CONNECTION_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllConnectionPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More") }), new Object[]{ this, Shr5managementPackage.Literals.CHARACTER_GENERATOR__GENERATOR })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllResourcePoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getGenerator() == null || getResourcen() == null) return true; if (state == GeneratorState.COMMITED) return true; int karma2Res = getKarmaToResource() * getGenerator().getKarmaToResourceFactor(); int diff = karma2Res + getResourcen().getResource() - getResourceSpend(); boolean test = getGenerator().getMaxResourceToKeep() < diff; if (test || diff < 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_RESOURCE_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllResourcePoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More") }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__RESOURCEN })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllMagicSkillsPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getMagic() == null) return true; if (state == GeneratorState.COMMITED) return true; int diff = getMagic().getSkillNumber() - getMagic().calcSkillsSpend(getCharacter()); if (diff != 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_MAGIC_SKILLS_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllMagicSkillsPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More"), "hasSpendAllMagicSkillsPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__MAGIC })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllMagicPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getMagic() == null) return true; if (state == GeneratorState.COMMITED) return true; int diff = getMagic().getSkillNumber() - getMagic().calcSkillsSpend(getCharacter()); if (diff != 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_MAGIC_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllMagicPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More"), "hasSpendAllMagicPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__MAGIC })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllGroupPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getSkills() == null) return true; if (state == GeneratorState.COMMITED) return true; int groupPoints = getSkills().getGroupPoints(); int diff = groupPoints - getSkills().calcGroupSpend(getCharacter()); if (diff != 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_GROUP_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllGroupPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More"), "hasSpendAllGroupPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__SKILLS })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllKnowlegeSkillPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getCharacter() == null || getSkills() == null) return true; if (state == GeneratorState.COMMITED) return true; int diff = getSkills().calcKnowledgeSkillPoints(getCharacter()) - getKnownlegePointSpend(); if (diff != 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_KNOWLEGE_SKILL_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllKnowlegeSkillPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More"), "hasSpendAllKnowlegeSkillPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__SKILLS })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllKarmaPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getGenerator() == null || getCharacter() == null) return true; if (state == GeneratorState.COMMITED) return true; int karmaPoints = getGenerator().getKarmaPoints(); int diff = karmaPoints - getKarmaSpend(); boolean test = getGenerator().getMaxKarmaToKeep() < diff; if (test || diff < 0) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_KARMA_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllKarmaPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More"), "hasSpendAllKarmaPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.CHARACTER_GENERATOR__GENERATOR })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllSpellPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getMagic() == null || getCharacter() == null) return true; if (state == GeneratorState.COMMITED) return true; String validationMessage = null; boolean hasSpendAllPoints = false; if (getMagic() instanceof Spellcaster) { Spellcaster sc = (Spellcaster)magic; int diff = sc.getSpellPoints() - sc.calcSpellPointsSpend(getCharacter()); if (sc.calcSpellPointsSpend(getCharacter()) == sc.getSpellPoints()) hasSpendAllPoints = true; validationMessage = ModelPlugin.INSTANCE.getString("_UI_NotSpendAllSpellPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More") }); } else if (getMagic() instanceof Technomancer) { Technomancer tm = (Technomancer)magic; int diff = tm.getComplexForms() - tm.calcComplexFormsSpend(getCharacter()); if (tm.calcComplexFormsSpend(getCharacter()) == tm.getComplexForms()) hasSpendAllPoints = true; validationMessage = ModelPlugin.INSTANCE.getString("_UI_NotSpendAllFormPoints", new Object[]{ diff, diff < 0 ? ModelPlugin.INSTANCE.getString("_UI_Less") : ModelPlugin.INSTANCE.getString("_UI_More") }); } else { hasSpendAllPoints = true; } if (!hasSpendAllPoints) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_SPELL_POINTS, validationMessage, new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__MAGIC })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasSpendAllPowerPoints(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getMagic() == null || getCharacter() == null || getGenerator() == null || getCharacter().getPersona() == null) return true; if (state == GeneratorState.COMMITED) return true; boolean hasSpendAll = true; if (getMagic().eClass().equals(Shr5managementPackage.Literals.ADEPT)) { Adept adept = (Adept)getMagic(); int calcPowerPointsSpend = adept.calcPowerPointsSpend(getCharacter()); KiAdept ka = (KiAdept)getCharacter().getPersona(); int magieBasis = ka.getMagieBasis() * 100; hasSpendAll = magieBasis - Math.abs(calcPowerPointsSpend) == 0; } else if (getMagic().eClass().equals(Shr5managementPackage.Literals.SPELLCASTER)) { if (getCharacter().getPersona() instanceof MysticAdept) { // MysticAdept ma = (MysticAdept)getCharacter().getPersona(); } } else { hasSpendAll = true; } if (!hasSpendAll) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_GENERATOR__HAS_SPEND_ALL_POWER_POINTS, ModelPlugin.INSTANCE.getString( "_UI_NotSpendAllPowerPoints", new Object[]{ "hasSpendAllPowerPoints", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this, Shr5managementPackage.Literals.SHR5_GENERATOR__MAGIC })); } return false; } return true; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated not */ public boolean hasBasicViolations(DiagnosticChain diagnostics, Map<Object, Object> context) { if (getMagic() == null || getMetaType() == null || getCharacter() == null || getGenerator() == null || getCharacter().getPersona() == null) return true; if (state == GeneratorState.COMMITED) return true; boolean sameSpecies = getMetaType().getChoosableTypes().equals(getCharacter().getPersona().getSpezies()); if (!sameSpecies) { if (diagnostics != null) { diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE, Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_BASIC_VIOLATIONS, ModelPlugin.INSTANCE.getString( "_UI_GenericInvariant_diagnostic", new Object[]{ "hasBasicViolations", EObjectValidator.getObjectLabel(this, context) }), 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 Shr5managementPackage.SHR5_GENERATOR__RESOURCEN: if (resolve) return getResourcen(); return basicGetResourcen(); case Shr5managementPackage.SHR5_GENERATOR__SKILLS: if (resolve) return getSkills(); return basicGetSkills(); case Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE: if (resolve) return getAttribute(); return basicGetAttribute(); case Shr5managementPackage.SHR5_GENERATOR__META_TYPE: if (resolve) return getMetaType(); return basicGetMetaType(); case Shr5managementPackage.SHR5_GENERATOR__MAGIC: if (resolve) return getMagic(); return basicGetMagic(); case Shr5managementPackage.SHR5_GENERATOR__KARMA_TO_RESOURCE: return getKarmaToResource(); case Shr5managementPackage.SHR5_GENERATOR__KARMA_SPEND: return getKarmaSpend(); case Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE_SPEND: return getAttributeSpend(); case Shr5managementPackage.SHR5_GENERATOR__RESOURCE_SPEND: return getResourceSpend(); case Shr5managementPackage.SHR5_GENERATOR__CONNECTION_SPEND: return getConnectionSpend(); case Shr5managementPackage.SHR5_GENERATOR__SKILL_POINT_SPEND: return getSkillPointSpend(); case Shr5managementPackage.SHR5_GENERATOR__SPECIAL_POINT_SPEND: return getSpecialPointSpend(); case Shr5managementPackage.SHR5_GENERATOR__GROUP_POINT_SPEND: return getGroupPointSpend(); case Shr5managementPackage.SHR5_GENERATOR__KNOWNLEGE_POINT_SPEND: return getKnownlegePointSpend(); case Shr5managementPackage.SHR5_GENERATOR__SPELL_POINT_SPEND: return getSpellPointSpend(); case Shr5managementPackage.SHR5_GENERATOR__START_KARMA: return getStartKarma(); case Shr5managementPackage.SHR5_GENERATOR__START_RESOURCES: return getStartResources(); } return super.eGet(featureID, resolve, coreType); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case Shr5managementPackage.SHR5_GENERATOR__RESOURCEN: setResourcen((Resourcen)newValue); return; case Shr5managementPackage.SHR5_GENERATOR__SKILLS: setSkills((Skill)newValue); return; case Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE: setAttribute((Attributes)newValue); return; case Shr5managementPackage.SHR5_GENERATOR__META_TYPE: setMetaType((MetaType)newValue); return; case Shr5managementPackage.SHR5_GENERATOR__MAGIC: setMagic((SpecialType)newValue); return; case Shr5managementPackage.SHR5_GENERATOR__KARMA_TO_RESOURCE: setKarmaToResource((Integer)newValue); return; case Shr5managementPackage.SHR5_GENERATOR__START_KARMA: setStartKarma((Integer)newValue); return; case Shr5managementPackage.SHR5_GENERATOR__START_RESOURCES: setStartResources((Integer)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case Shr5managementPackage.SHR5_GENERATOR__RESOURCEN: setResourcen((Resourcen)null); return; case Shr5managementPackage.SHR5_GENERATOR__SKILLS: setSkills((Skill)null); return; case Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE: setAttribute((Attributes)null); return; case Shr5managementPackage.SHR5_GENERATOR__META_TYPE: setMetaType((MetaType)null); return; case Shr5managementPackage.SHR5_GENERATOR__MAGIC: setMagic((SpecialType)null); return; case Shr5managementPackage.SHR5_GENERATOR__KARMA_TO_RESOURCE: setKarmaToResource(KARMA_TO_RESOURCE_EDEFAULT); return; case Shr5managementPackage.SHR5_GENERATOR__START_KARMA: setStartKarma(START_KARMA_EDEFAULT); return; case Shr5managementPackage.SHR5_GENERATOR__START_RESOURCES: setStartResources(START_RESOURCES_EDEFAULT); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case Shr5managementPackage.SHR5_GENERATOR__RESOURCEN: return resourcen != null; case Shr5managementPackage.SHR5_GENERATOR__SKILLS: return skills != null; case Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE: return attribute != null; case Shr5managementPackage.SHR5_GENERATOR__META_TYPE: return metaType != null; case Shr5managementPackage.SHR5_GENERATOR__MAGIC: return magic != null; case Shr5managementPackage.SHR5_GENERATOR__KARMA_TO_RESOURCE: return karmaToResource != KARMA_TO_RESOURCE_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__KARMA_SPEND: return getKarmaSpend() != KARMA_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__ATTRIBUTE_SPEND: return getAttributeSpend() != ATTRIBUTE_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__RESOURCE_SPEND: return getResourceSpend() != RESOURCE_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__CONNECTION_SPEND: return getConnectionSpend() != CONNECTION_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__SKILL_POINT_SPEND: return getSkillPointSpend() != SKILL_POINT_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__SPECIAL_POINT_SPEND: return getSpecialPointSpend() != SPECIAL_POINT_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__GROUP_POINT_SPEND: return getGroupPointSpend() != GROUP_POINT_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__KNOWNLEGE_POINT_SPEND: return getKnownlegePointSpend() != KNOWNLEGE_POINT_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__SPELL_POINT_SPEND: return getSpellPointSpend() != SPELL_POINT_SPEND_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__START_KARMA: return startKarma != START_KARMA_EDEFAULT; case Shr5managementPackage.SHR5_GENERATOR__START_RESOURCES: return startResources != START_RESOURCES_EDEFAULT; } return super.eIsSet(featureID); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override @SuppressWarnings("unchecked") public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException { switch (operationID) { case Shr5managementPackage.SHR5_GENERATOR___HAS_CATEGORY_ONLY_ONCE__DIAGNOSTICCHAIN_MAP: return hasCategoryOnlyOnce((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_ATTRIBUTES_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllAttributesPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_SKILL_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllSkillPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_SPECIAL_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllSpecialPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_SPECIAL_TYPE_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllSpecialTypePoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_CONNECTION_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllConnectionPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_RESOURCE_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllResourcePoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_MAGIC_SKILLS_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllMagicSkillsPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_MAGIC_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllMagicPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_GROUP_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllGroupPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_KNOWLEGE_SKILL_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllKnowlegeSkillPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_KARMA_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllKarmaPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_SPELL_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllSpellPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); case Shr5managementPackage.SHR5_GENERATOR___HAS_SPEND_ALL_POWER_POINTS__DIAGNOSTICCHAIN_MAP: return hasSpendAllPowerPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1)); } return super.eInvoke(operationID, arguments); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (karmaToResource: "); result.append(karmaToResource); result.append(", startKarma: "); result.append(startKarma); result.append(", startResources: "); result.append(startResources); result.append(')'); return result.toString(); } } // Shr5GeneratorImpl