@Override
  public Object evaluate(EvaluationContextImpl context) throws EvaluateException {
    myEvaluatedIndex = 0;
    myEvaluatedArrayReference = null;
    Value indexValue = (Value)myIndexEvaluator.evaluate(context);
    Value arrayValue = (Value)myArrayReferenceEvaluator.evaluate(context);
    if (!(arrayValue instanceof ArrayReference)) {
      throw EvaluateExceptionUtil.createEvaluateException(JavaDebuggerBundle.message("evaluation.error.array.reference.expected"));
    }
    myEvaluatedArrayReference = (ArrayReference)arrayValue;
    if (!DebuggerUtils.isInteger(indexValue)) {
      throw EvaluateExceptionUtil.createEvaluateException(JavaDebuggerBundle.message("evaluation.error.invalid.index.expression"));
    }
    myEvaluatedIndex = ((PrimitiveValue)indexValue).intValue();
    try {
      return myEvaluatedArrayReference.getValue(myEvaluatedIndex);
    }
    catch (Exception e) {
      throw EvaluateExceptionUtil.createEvaluateException(e);
    }
  }
@Override
  public Object evaluate(EvaluationContextImpl context)