package org.dresdenocl.pivotmodel.base; import org.dresdenocl.pivotmodel.Operation; import org.dresdenocl.pivotmodel.Parameter; import org.dresdenocl.pivotmodel.ParameterDirectionKind; import org.dresdenocl.pivotmodel.Type; import org.dresdenocl.pivotmodel.impl.ParameterImpl; /** * This class is meant as a base class for DSL- and/or repository-specific * implementations of the Pivot Model {@link Parameter} concept. It defines the * minimal set of operations that are required for adapting parameters in the * foreign DSL or repository. Implementors may choose to override additional * methods or write an entirely new implementation of the <code>Parameter</code> * interface. * * <p> * In particular, the following methods will probably have to be additionally * overridden for most DSLs: * <ul> * <li>{@link #isMultiple()} * <li>{@link #isOrdered()} * <li>{@link #isUnique()} * </ul> * </p> * * <p> * If the DSL supports the notion of a {@link ParameterDirectionKind}, the * {@link #getKind()} method should be overridden as well. * </p> * * @author Matthias Braeuer * @version 1.0 12.04.2007 */ public abstract class AbstractParameter extends ParameterImpl implements Parameter { /** * Subclasses should return the name of the adapted <code>Parameter</code>. */ @Override public abstract String getName(); /** * Subclasses should return an adapter for the owning {@link Operation}. */ @Override public abstract Operation getOperation(); /** * Subclasses should return an adapter for the {@link Type} of the adapted * <code>Parameter</code>. */ @Override public abstract Type getType(); }