/******************************************************************************* * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdt.debug.eval; import java.io.File; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.debug.core.IJavaDebugTarget; import org.eclipse.jdt.internal.debug.eval.LocalEvaluationEngine; import org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine; /** * The evaluation manager provides factory methods for creating evaluation * engines. * * @see org.eclipse.jdt.debug.eval.IEvaluationEngine * @see org.eclipse.jdt.debug.eval.IClassFileEvaluationEngine * @see org.eclipse.jdt.debug.eval.IAstEvaluationEngine * @see org.eclipse.jdt.debug.eval.IEvaluationResult * @see org.eclipse.jdt.debug.eval.IEvaluationListener * @since 2.0 * @noinstantiate This class is not intended to be instantiated by clients. * @noextend This class is not intended to be subclassed by clients. */ public class EvaluationManager { /** * Not to be instantiated */ private EvaluationManager() { } /** * Creates and returns a new evaluation engine that performs evaluations for * local Java applications by deploying class files. * * @param project * the Java project in which expressions are to be compiled * @param target * the Java debug target in which expressions are to be evaluated * @param directory * the directory where support class files are deployed to assist * in the evaluation. The directory must exist. * @return an evaluation engine */ public static IClassFileEvaluationEngine newClassFileEvaluationEngine( IJavaProject project, IJavaDebugTarget target, File directory) { return new LocalEvaluationEngine(project, target, directory); } /** * Creates and returns a new evaluation engine that performs evaluations by * compiling expressions into abstract syntax trees (ASTs), and interpreting * the AST over a JDI connection. This type of evaluation engine is capable * of performing remote evaluations. * * @param project * the Java project in which expressions are to be compiled * @param target * the Java debug target in which expressions are to be evaluated * @return an evaluation engine */ public static IAstEvaluationEngine newAstEvaluationEngine( IJavaProject project, IJavaDebugTarget target) { return new ASTEvaluationEngine(project, target); } }