package org.dresdenocl.pivotmodel.base; import org.dresdenocl.pivotmodel.Namespace; import org.dresdenocl.pivotmodel.PrimitiveType; import org.dresdenocl.pivotmodel.PrimitiveTypeKind; import org.dresdenocl.pivotmodel.impl.PrimitiveTypeImpl; /** * This class is meant as a base class for DSL- and/or repository-specific * implementations of the Pivot Model {@link PrimitiveType} concept. It defines * the minimal set of operations that are required for adapting primitive types * in the foreign DSL or repository. For example, subclasses need to specify * what <code>kind</code> of primitive type they are adapting. This is important * for external clients such as an OCL engine to determine what capabilities the * primitive type has. Implementors may choose to override additional methods or * write an entirely new implementation of the <code>PrimitiveType</code> * interface. * * @author Matthias Braeuer * @version 1.0 30.03.2007 */ public abstract class AbstractPrimitiveType extends PrimitiveTypeImpl implements PrimitiveType { /** * Subclasses should return the name of the adapted {@link PrimitiveType}. */ @Override public abstract String getName(); /** * Subclasses should return an adapter for the {@link Namespace} that owns * this <code>PrimitiveType</code>. */ @Override public abstract Namespace getNamespace(); /** * Subclasses should specify which of the predefined Pivot Model types best * fits the adapted type. Alternatively, {@link PrimitiveTypeKind#UNKNOWN} may * be used. */ @Override public abstract PrimitiveTypeKind getKind(); }