package org.eclipse.dltk.debug.core.eval; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IErrorReportingExpression; import org.eclipse.debug.core.model.IValue; public class EvaluatedScriptExpression extends PlatformObject implements IErrorReportingExpression { public static String[] getErrorMessages(IScriptEvaluationResult result) { if (result == null) { return new String[0]; } String messages[] = result.getErrorMessages(); if (messages.length > 0) { return messages; } DebugException exception = result.getException(); if (exception != null) { return new String[] { exception.getMessage() }; } return new String[0]; } private final IScriptEvaluationResult result; public EvaluatedScriptExpression(IScriptEvaluationResult result) { if (result == null) { throw new IllegalArgumentException(); } this.result = result; } @Override public String[] getErrorMessages() { return getErrorMessages(result); } @Override public boolean hasErrors() { return result.hasErrors(); } @Override public IDebugTarget getDebugTarget() { return result.getThread().getDebugTarget(); } @Override public String getExpressionText() { return result.getSnippet(); } @Override public IValue getValue() { return result.getValue(); } @Override public ILaunch getLaunch() { return getDebugTarget().getLaunch(); } @Override public String getModelIdentifier() { return getDebugTarget().getModelIdentifier(); } @Override public void dispose() { } }