package sk.stuba.fiit.perconik.core.services; import sk.stuba.fiit.perconik.core.ForwardingNameable; /** * A provider which forwards all its method calls to another provider. * Subclasses should override one or more methods to modify the behavior * of the backing provider as desired per the decorator pattern. * * <p>Note that this class does <i>not</i> forward the {@code equals} * and {@code hashCode} methods through to the backing object. * See {@code ForwardingObject} for more details. * * @author Pavol Zbell * @since 1.0 */ public abstract class ForwardingProvider extends ForwardingNameable implements Provider { /** * Constructor for use by subclasses. */ protected ForwardingProvider() {} @Override protected abstract Provider delegate(); public Provider parent() { return this.delegate().parent(); } }