/** @inheridDoc */
 public Evaluator getEvaluator(
     ValueType type,
     String operatorId,
     boolean isNegated,
     String parameterText,
     Target leftTarget,
     Target rightTarget) {
   IsAEvaluator evaluator = new IsAEvaluator(type, isNegated);
   evaluator.setParameterText(parameterText);
   return evaluator;
 }
  /** @inheridDoc */
  public Evaluator getEvaluator(
      ValueType type,
      String operatorId,
      boolean isNegated,
      String parameterText,
      Target leftTarget,
      Target rightTarget) {

    if (ChanceOperators.isImperfect(operatorId)) {

      if (isNegated) {
        throw new UnsupportedOperationException("Negated isA : Not implemented yet");
      }
      IsAEvaluator evaluator = new ImperfectIsAEvaluator(type, isNegated);
      evaluator.setParameterText(parameterText);
      return evaluator;

    } else {

      IsAEvaluator evaluator = new IsAEvaluator(type, isNegated);
      evaluator.setParameterText(parameterText);
      return evaluator;
    }
  }