/** * <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 java.util.List; import org.eclipse.emf.henshin.model.Parameter; import org.eclipse.emf.henshin.model.Unit; /** * Interface for parameter assignments. Used for storing parameter values. * * @author Christian Krause */ public interface Assignment { /** * Get the unit that this assignment refers to. * @return The unit. */ Unit getUnit(); /** * Get the value assigned to a parameter. * @param param The parameter. * @return The assigned value or <code>null</code>. */ Object getParameterValue(Parameter param); /** * Set the assigned value for a parameter. * @param param The parameter. * @param value The value to be assigned with the parameter. */ void setParameterValue(Parameter param, Object value); /** * Get all parameter values. * @return List of all parameter values. */ List<Object> getParameterValues(); /** * Check whether this assignment is empty. * @return <code>true</code> of no values are assigned. */ boolean isEmpty(); /** * Clear all values stored in this assignment. */ void clear(); /** * Checks whether this is an assignment for a result of a unit application. * @return <code>true</code> if it is a result assignment. */ boolean isResult(); }