/*******************************************************************************
* Copyright (c) 2013 Rene Schneider, GEBIT Solutions GmbH 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
*******************************************************************************/
package de.gebit.integrity.operations.standard;
import de.gebit.integrity.dsl.StandardOperation;
import de.gebit.integrity.operations.UnexecutableException;
/**
* Implementations of this class are responsible for processing {@link StandardOperation} instances, which are
* operations directly supported in the Integrity language core. Right now that covers some basic arithmetic operations
* and string concatenation.
*
* @author Rene Schneider - initial API and implementation
*
*/
public interface StandardOperationProcessor {
/**
* Evaluates the given {@link StandardOperation} and returns the result object (not converted to any specific type).
*
* @param anOperation
* the operation to execute
* @return the result
* @throws UnexecutableException
* in case the operation cannot be executed (such as because we're running in Eclipse and don't have
* access to variable values)
*/
Object executeOperation(StandardOperation anOperation) throws UnexecutableException;
}