package org.dresdenocl.pivotmodel.base; import org.dresdenocl.pivotmodel.Property; import org.dresdenocl.pivotmodel.Type; import org.dresdenocl.pivotmodel.impl.PropertyImpl; /** * This class is meant as a base class for DSL- and/or repository-specific * implementations of the Pivot Model {@link Property} concept. It defines the * minimal set of operations that are required for adapting properties in the * foreign DSL or repository. Implementors may choose to override additional * methods or write an entirely new implementation of the <code>Property</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()} * <li>{@link #isStatic()} * </ul> * </p> * * @author Matthias Braeuer * @version 1.0 12.04.2007 */ public abstract class AbstractProperty extends PropertyImpl implements Property { /** * Subclasses should return the name of the adapted <code>Property</code>. */ @Override public abstract String getName(); /** * Subclasses should return an adapter for the {@link Type} owning the adapted * <code>Property</code>. */ @Override public abstract Type getOwningType(); /** * Subclasses should return an adapter for the {@link Type type} of the * adapted <code>Property</code>. */ @Override public abstract Type getType(); }