/**
* 2014 Urs Zeidler
*/
package de.urszeidler.eclipse.shr5Management.impl;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
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.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.EObjectValidator;
import org.eclipse.emf.ecore.xmi.XMLResource;
import com.google.common.base.Function;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import de.urszeidler.eclipse.shr5.AbstraktPersona;
import de.urszeidler.eclipse.shr5.Fertigkeit;
import de.urszeidler.eclipse.shr5.Identifiable;
import de.urszeidler.eclipse.shr5.KiAdept;
import de.urszeidler.eclipse.shr5.PersonaFertigkeit;
import de.urszeidler.eclipse.shr5.Quelle;
import de.urszeidler.eclipse.shr5.Shr5Package;
import de.urszeidler.eclipse.shr5.SourceBook;
import de.urszeidler.eclipse.shr5.Spezies;
import de.urszeidler.eclipse.shr5.util.ShadowrunTools;
import de.urszeidler.eclipse.shr5Management.Connection;
import de.urszeidler.eclipse.shr5Management.GeneratorState;
import de.urszeidler.eclipse.shr5Management.ManagedCharacter;
import de.urszeidler.eclipse.shr5Management.ModelPlugin;
import de.urszeidler.eclipse.shr5Management.QuellenConstrain;
import de.urszeidler.eclipse.shr5Management.QuellenConstrainType;
import de.urszeidler.eclipse.shr5Management.Shr5RuleGenerator;
import de.urszeidler.eclipse.shr5Management.Shr5System;
import de.urszeidler.eclipse.shr5Management.Shr5managementPackage;
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 Rule Generator</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link de.urszeidler.eclipse.shr5Management.impl.Shr5RuleGeneratorImpl#getAllowedSources <em>Allowed Sources</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public abstract class Shr5RuleGeneratorImpl<G extends Shr5System> extends CharacterGeneratorImpl<G> implements Shr5RuleGenerator<G> {
/**
* The cached value of the '{@link #getAllowedSources() <em>Allowed Sources</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAllowedSources()
* @generated
* @ordered
*/
protected EList<SourceBook> allowedSources;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected Shr5RuleGeneratorImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return Shr5managementPackage.Literals.SHR5_RULE_GENERATOR;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* This is specialized for the more specific type known in this context.
* @generated
*/
@Override
public void setGenerator(G newGenerator) {
super.setGenerator(newGenerator);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated not
*/
public Shr5System basicgetGenerator() {
if (generator instanceof Shr5System) {
Shr5System sr5 = (Shr5System)generator;
return sr5;
}
return null;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<SourceBook> getAllowedSources() {
if (allowedSources == null) {
allowedSources = new EObjectResolvingEList<SourceBook>(SourceBook.class, this, Shr5managementPackage.SHR5_RULE_GENERATOR__ALLOWED_SOURCES);
}
return allowedSources;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasSpendAllPoints(DiagnosticChain diagnostics, Map<Object, Object> context) {
return true;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasNotMoreMaxAttributes(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!canValidate())
return true;
ManagedCharacter managedCharacter = getCharacter();
AbstraktPersona persona = managedCharacter.getPersona();
Spezies spezies = persona.getSpezies();
if (spezies == null)
return true;
ArrayList<EAttribute> list = new ArrayList<EAttribute>();
if (persona.getKonstitutionBasis() >= spezies.getKonstitutionMax())
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__KONSTITUTION);
if (persona.getGeschicklichkeitBasis() >= spezies.getGeschicklichkeitMax())
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__GESCHICKLICHKEIT);
if (persona.getReaktionBasis() >= spezies.getReaktionMax())
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__REAKTION);
if (persona.getStaerkeBasis() >= spezies.getStaerkeMax())
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__STAERKE);
if (persona.getCharismaBasis() >= spezies.getCharismaMax())
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__CHARISMA);
if (persona.getLogikBasis() >= spezies.getLogikMax())
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__LOGIK);
if (persona.getWillenskraftBasis() >= spezies.getWillenskraftMax())
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__WILLENSKRAFT);
if (persona.getIntuitionBasis() >= spezies.getIntuitionMax())
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__INTUITION);
String attributes = toAttributeString(list, context);
if (list.size() > getGenerator().getNumberOfMaxAttributes()) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_NOT_MORE_MAX_ATTRIBUTES, ModelPlugin.INSTANCE.getString(
"_UI_NotMoreMaxAttributes", new Object[]{ attributes, getGenerator().getNumberOfMaxAttributes() }),
new Object[]{ this }));
}
return false;
}
return true;
}
/**
* Creates a string from a list of attributes.
*
* @param list the attributes
* @param context
* @return the localized test
*/
protected String toAttributeString(ArrayList<EAttribute> list, Map<Object, Object> context) {
StringBuffer buffer = new StringBuffer();
for (Iterator<EAttribute> iterator2 = list.iterator(); iterator2.hasNext();) {
EAttribute eAttribute = iterator2.next();
buffer.append(EObjectValidator.getObjectLabel(eAttribute, context));
if (iterator2.hasNext())
buffer.append(",");
}
return buffer.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasNoSkillsOverMax(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!canValidate())
return true;
ManagedCharacter managedCharacter = getCharacter();
AbstraktPersona persona = managedCharacter.getPersona();
List<Fertigkeit> list = new ArrayList<Fertigkeit>();
EList<PersonaFertigkeit> fertigkeiten = persona.getFertigkeiten();
for (PersonaFertigkeit personaFertigkeit : fertigkeiten) {
if (personaFertigkeit.getStufe() > getGenerator().getSkillMax())
list.add(personaFertigkeit.getFertigkeit());
}
String fertigkeitsList = ShadowrunManagmentTools.beschreibarListToString(list);
if (list.size() != 0) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_NO_SKILLS_OVER_MAX, ModelPlugin.INSTANCE.getString("_UI_NoSkillsOverMax",
new Object[]{ fertigkeitsList, getGenerator().getSkillMax() }), new Object[]{ this }));
}
return false;
}
return true;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasNotMoreSpecalism(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!canValidate())
return true;
ManagedCharacter managedCharacter = getCharacter();
AbstraktPersona persona = managedCharacter.getPersona();
List<Fertigkeit> list = new ArrayList<Fertigkeit>();
EList<PersonaFertigkeit> fertigkeiten = persona.getFertigkeiten();
for (PersonaFertigkeit personaFertigkeit : fertigkeiten) {
if (personaFertigkeit.getSpezialisierungen().size() > getGenerator().getNumberOfSpecalism())
list.add(personaFertigkeit.getFertigkeit());
}
String fertigkeitsList = ShadowrunManagmentTools.beschreibarListToString(list);
if (list.size() != 0) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_NOT_MORE_SPECALISM, ModelPlugin.INSTANCE.getString("_UI_NotMoreSpecalism",
new Object[]{ fertigkeitsList, getGenerator().getNumberOfSpecalism() }), new Object[]{ this }));
}
return false;
}
return true;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasNoAttributesOverSpeciesAtt(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!canValidate())
return true;
ManagedCharacter managedCharacter = getCharacter();
AbstraktPersona persona = managedCharacter.getPersona();
Spezies spezies = persona.getSpezies();
if (spezies == null)
return true;
// getGenerator().getNumberOfMaxAttributes();
// int counter = 0;
ArrayList<EAttribute> list = new ArrayList<EAttribute>();
if (persona.getKonstitutionBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__KONSTITUTION_MAX))// spezies.getKonstitutionMax())
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__KONSTITUTION);
if (persona.getGeschicklichkeitBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__GESCHICKLICHKEIT_MAX))
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__GESCHICKLICHKEIT);
if (persona.getReaktionBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__REAKTION_MAX))
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__REAKTION);
if (persona.getStaerkeBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__STAERKE_MAX))
list.add(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__STAERKE);
if (persona.getCharismaBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__CHARISMA_MAX))
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__CHARISMA);
if (persona.getLogikBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__LOGIK_MAX))
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__LOGIK);
if (persona.getWillenskraftBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__WILLENSKRAFT_MAX))
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__WILLENSKRAFT);
if (persona.getIntuitionBasis() > ShadowrunTools.calcRaceMaximum(persona, Shr5Package.Literals.SPEZIES__INTUITION_MAX))
list.add(Shr5Package.Literals.GEISTIGE_ATTRIBUTE__INTUITION);
String attributesString = toAttributeString(list, context);
if (list.size() != 0) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_NO_ATTRIBUTES_OVER_SPECIES_ATT, ModelPlugin.INSTANCE.getString(
"_UI_NoAttributesOverSpeciesAtt", new Object[]{ attributesString }), new Object[]{ this }));
}
return false;
}
return true;
}
/**
* Checks if the generator the character and the persona are set.
*
* @return true if validation can be done
*/
protected boolean canValidate() {
if (getGenerator() == null || getState() == GeneratorState.COMMITED)
return false;
ManagedCharacter managedCharacter = getCharacter();
if (managedCharacter == null)
return false;
AbstraktPersona persona = managedCharacter.getPersona();
if (persona == null)
return false;
return true;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasNoConstrainVoilation(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!canValidate())
return true;
ManagedCharacter managedCharacter = getCharacter();
// AbstraktPersona persona = managedCharacter.getPersona();
EList<QuellenConstrain> additionalConstrains = getGenerator().getAdditionalConstrains();
XMLResource eResource = (XMLResource)managedCharacter.eResource();
ArrayList<Identifiable> list = new ArrayList<Identifiable>();
for (Iterator<EObject> iterator = managedCharacter.eAllContents(); iterator.hasNext();) {
EObject o = iterator.next();
if (o instanceof Identifiable) {
Identifiable id = (Identifiable)o;
if (id.getParentId() != null && eResource != null)
id = (Identifiable)eResource.getEObject(id.getParentId());
if (id != null)
list.add(id);
else
list.add((Identifiable)o);
}
}
Identifiable source = null;
Identifiable tar = null;
ArrayList<Identifiable[]> arrayList = new ArrayList<Identifiable[]>();
for (Identifiable identifiable : list) {
for (QuellenConstrain quellenConstrain : additionalConstrains) {
if (quellenConstrain.getSource() != null && quellenConstrain.getSource().equals(identifiable)) {
if (quellenConstrain.getConstrainType() == QuellenConstrainType.NOT_TOGETHER) {
EList<Quelle> targets = quellenConstrain.getTargets();
for (Quelle quelle : targets) {
if (list.contains(quelle)) {
Identifiable[] id = new Identifiable[]{ source, tar };
arrayList.add(id);
}
}
} else if (quellenConstrain.getConstrainType() == QuellenConstrainType.NEED_ONE_OF) {
}
}
}
}
// TreeIterator<EObject> eAllContents = this.eAllContents();
// ShadowrunTools.toIterable(eAllContents);
// ArrayList<EObject> q = new ArrayList<EObject>();
// for (QuellenConstrain quellenConstrain : additionalConstrains) {
// if (quellenConstrain.getConstrainType() == QuellenConstrainType.NEED_ONE_OF) {
// EList<Quelle> targets = quellenConstrain.getTargets();
// q.addAll(FluentIterable.from(ShadowrunTools.toIterable(eAllContents))
// .filter(ShadowrunTools.isASameBPredicate(quellenConstrain.getSource())).toList());
// }
// }
if (!arrayList.isEmpty()) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_NO_CONSTRAIN_VOILATION, ModelPlugin.INSTANCE.getString(
"_UI_GenericInvariant_diagnostic",
new Object[]{ "hasNoConstrainVoilation", EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this }));
}
return false;
}
return true;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasOnlyAllowedSources(DiagnosticChain diagnostics, final Map<Object, Object> context) {
if (!canValidate() || getAllowedSources().isEmpty())
return true;
final ManagedCharacter managedCharacter = getCharacter();
ImmutableList<String> list = FluentIterable.from(ShadowrunTools.toIterable(managedCharacter.eAllContents()))
.filter(ShadowrunTools.notAllowedSourcePredicate(getAllowedSources())).transform(new Function<EObject, String>() {
@Override
public String apply(EObject input) {
return EObjectValidator.getObjectLabel(input, context);
}
}).toList();
if (list.size() > 0) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_ONLY_ALLOWED_SOURCES, ModelPlugin.INSTANCE.getString(
"_UI_hasOnlyAllowedSources", new Object[]{ list.toString() }), new Object[]{ this }));
}
return false;
}
return true;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasKiPowerOverLimit(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (getCharacter() == null || getCharacter().getPersona() == null)
return true;
if (state == GeneratorState.COMMITED)
return true;
boolean check = false;
AbstraktPersona persona = getCharacter().getPersona();
if (persona instanceof KiAdept) {
KiAdept ka = (KiAdept)persona;
int calcPowerPointsSpend = ShadowrunManagmentTools.calcPowerPointsSpend(getCharacter()) * -1;
int magie = ka.getMagie();
check = calcPowerPointsSpend > magie * 100;
}
if (check) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_KI_POWER_OVER_LIMIT, ModelPlugin.INSTANCE.getString(
"_UI_hasKiPowerOverLimit", new Object[]{ EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this }));
}
return false;
}
return true;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasBasicViolations(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!canValidate())
return true;
boolean isOk = true;
ArrayList<Connection> list = new ArrayList<Connection>();
EList<Connection> connections = getCharacter().getConnections();
for (Connection connection : connections) {
if (connection.getInfluence() > getGenerator().getMaxConnectionRating())
list.add(connection);
if (connection.getLoyality() > getGenerator().getMaxConnectionRating())
list.add(connection);
}
if (list.size() > 0) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_BASIC_VIOLATIONS, ModelPlugin.INSTANCE.getString(
"_UI_Connection_rating_over_limit",
new Object[]{ShadowrunManagmentTools.eobjectsToSting(list, ",", context) , EObjectValidator.getObjectLabel(this, context) }), new Object[]{ this }));
}
isOk = false;
}
// if (false) {
// if (diagnostics != null) {
// diagnostics.add
// (new BasicDiagnostic
// (Diagnostic.ERROR,
// Shr5managementValidator.DIAGNOSTIC_SOURCE,
// Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_BASIC_VIOLATIONS,
// EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "hasBasicViolations",
// EObjectValidator.getObjectLabel(this, context) }),
// new Object [] { this }));
// }
// return false;
// }
return isOk;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated not
*/
public boolean hasLifestyleChoosen(DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!canValidate())
return true;
ManagedCharacter managedCharacter = getCharacter();
if (managedCharacter.getChoosenLifestyle() == null) {
if (diagnostics != null) {
diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, Shr5managementValidator.DIAGNOSTIC_SOURCE,
Shr5managementValidator.SHR5_RULE_GENERATOR__HAS_LIFESTYLE_CHOOSEN, ModelPlugin.INSTANCE.getString("_UI_NoLivestyleChoosen",
new Object[]{ EObjectValidator.getObjectLabel(managedCharacter, 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_RULE_GENERATOR__ALLOWED_SOURCES:
return getAllowedSources();
}
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 Shr5managementPackage.SHR5_RULE_GENERATOR__ALLOWED_SOURCES:
getAllowedSources().clear();
getAllowedSources().addAll((Collection<? extends SourceBook>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case Shr5managementPackage.SHR5_RULE_GENERATOR__ALLOWED_SOURCES:
getAllowedSources().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case Shr5managementPackage.SHR5_RULE_GENERATOR__ALLOWED_SOURCES:
return allowedSources != null && !allowedSources.isEmpty();
}
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_RULE_GENERATOR___HAS_SPEND_ALL_POINTS__DIAGNOSTICCHAIN_MAP:
return hasSpendAllPoints((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_NOT_MORE_MAX_ATTRIBUTES__DIAGNOSTICCHAIN_MAP:
return hasNotMoreMaxAttributes((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_NO_SKILLS_OVER_MAX__DIAGNOSTICCHAIN_MAP:
return hasNoSkillsOverMax((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_NOT_MORE_SPECALISM__DIAGNOSTICCHAIN_MAP:
return hasNotMoreSpecalism((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_NO_ATTRIBUTES_OVER_SPECIES_ATT__DIAGNOSTICCHAIN_MAP:
return hasNoAttributesOverSpeciesAtt((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_NO_CONSTRAIN_VOILATION__DIAGNOSTICCHAIN_MAP:
return hasNoConstrainVoilation((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_LIFESTYLE_CHOOSEN__DIAGNOSTICCHAIN_MAP:
return hasLifestyleChoosen((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_ONLY_ALLOWED_SOURCES__DIAGNOSTICCHAIN_MAP:
return hasOnlyAllowedSources((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_KI_POWER_OVER_LIMIT__DIAGNOSTICCHAIN_MAP:
return hasKiPowerOverLimit((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
case Shr5managementPackage.SHR5_RULE_GENERATOR___HAS_BASIC_VIOLATIONS__DIAGNOSTICCHAIN_MAP:
return hasBasicViolations((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
}
return super.eInvoke(operationID, arguments);
}
} // Shr5RuleGeneratorImpl