/**
* <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.impl;
import org.eclipse.emf.henshin.interpreter.EGraph;
import org.eclipse.emf.henshin.interpreter.Engine;
import org.eclipse.emf.henshin.interpreter.UnitApplication;
import org.eclipse.emf.henshin.model.Unit;
/**
* Abstract base class for {@link UnitApplicationImpl} and {@link RuleApplicationImpl}.
*
* @author Christian Krause
*/
public abstract class AbstractApplicationImpl implements UnitApplication {
// Engine to be used:
protected final Engine engine;
// Unit to be applied:
protected Unit unit;
// Object graph to be transformed.
protected EGraph graph;
/**
* Default constructor.
* @param engine Engine (required).
*/
protected AbstractApplicationImpl(Engine engine) {
if (engine==null) {
throw new IllegalArgumentException("Engine cannot be null");
}
this.engine = engine;
}
/*
* (non-Javadoc)
* @see org.eclipse.emf.henshin.interpreter.UnitApplication#getUnit()
*/
@Override
public Unit getUnit() {
return unit;
}
/*
* (non-Javadoc)
* @see org.eclipse.emf.henshin.interpreter.UnitApplication#setUnit(org.eclipse.emf.henshin.model.TransformationUnit)
*/
@Override
public void setUnit(Unit unit) {
this.unit = unit;
}
/*
* (non-Javadoc)
* @see org.eclipse.emf.henshin.interpreter.UnitApplication#getEGraph()
*/
@Override
public EGraph getEGraph() {
return graph;
}
/*
* (non-Javadoc)
* @see org.eclipse.emf.henshin.interpreter.UnitApplication#setEGraph(org.eclipse.emf.henshin.interpreter.EGraph)
*/
@Override
public void setEGraph(EGraph graph) {
this.graph = graph;
}
/*
* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "'" + unit.getName() + "'" + " application";
}
}