| /** |
| * <copyright> |
| * Copyright (c) 2010-2014 Henshin developers. 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 |
| * </copyright> |
| */ |
| package org.eclipse.emf.henshin.interpreter; |
| |
| import org.eclipse.emf.henshin.model.Rule; |
| |
| /** |
| * Interface for {@link Rule} applications. |
| * Rule applications are reusable. To reuse an instance |
| * you must invoke {@link #setPartialMatch(Match)} or |
| * {@link #setCompleteMatch(Match)} or {@link #setRule(Rule)} |
| * before every execution. |
| * |
| * @author Enrico Biermann, Christian Krause |
| */ |
| public interface RuleApplication extends UnitApplication { |
| |
| /** |
| * Get the rule to be applied. |
| * @return The rule to be applied. |
| */ |
| Rule getRule(); |
| |
| /** |
| * Set the rule to be applied. |
| * @param rule The rule to be applied. |
| */ |
| void setRule(Rule rule); |
| |
| /** |
| * Get the partial match to be used. |
| * @return The partial match. |
| */ |
| Match getPartialMatch(); |
| |
| /** |
| * Set the partial match to be used. |
| * @param partialMatch The partial match (can be <code>null</code>). |
| */ |
| void setPartialMatch(Match partialMatch); |
| |
| /** |
| * Get the complete match to be used. |
| * @return The complete match. |
| */ |
| Match getCompleteMatch(); |
| |
| /** |
| * Set the complete match to be used. If it is set to <code>null</code>, |
| * the complete match will be derived from the partial match. |
| * @param completeMatch The complete match (can be <code>null</code>). |
| */ |
| void setCompleteMatch(Match completeMatch); |
| |
| /** |
| * Get the match for the result of the transformation (after the unit has been applied). |
| * @return The match for the result. |
| */ |
| Match getResultMatch(); |
| |
| } |