package sk.stuba.fiit.perconik.core; import java.util.Collection; /** * A resource which forwards all its method calls to another resource. * Subclasses should override one or more methods to modify the behavior * of the backing resource 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 * {@link com.google.common.collect.ForwardingObject ForwardingObject} * for more details. * * @see Resource * * @author Pavol Zbell * @since 1.0 */ public abstract class ForwardingResource<L extends Listener> extends ForwardingRegistrable implements Resource<L> { /** * Constructor for use by subclasses. */ protected ForwardingResource() {} @Override protected abstract Resource<L> delegate(); public void register(final L listener) { this.delegate().register(listener); } public void unregister(final L listener) { this.delegate().unregister(listener); } public <U extends Listener> Collection<U> registered(final Class<U> type) { return this.delegate().registered(type); } public boolean registered(final Listener listener) { return this.delegate().registered(listener); } public String getName() { return this.delegate().getName(); } }