package sk.stuba.fiit.perconik.eclipse.jface.preference; import javax.annotation.Nullable; import com.google.common.collect.ForwardingObject; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.util.IPropertyChangeListener; /** * A preference store which forwards all its method calls to another preference * store. Subclasses should override one or more methods to modify the behavior * of the backing preference store 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 ForwardingObject} for more details. * * @author Pavol Zbell * @since 1.0 */ public abstract class ForwardingPreferenceStore extends ForwardingObject implements IPreferenceStore { /** * Constructor for use by subclasses. */ protected ForwardingPreferenceStore() {} @Override protected abstract IPreferenceStore delegate(); public void addPropertyChangeListener(final IPropertyChangeListener listener) { this.delegate().addPropertyChangeListener(listener); } public void removePropertyChangeListener(final IPropertyChangeListener listener) { this.delegate().removePropertyChangeListener(listener); } public void firePropertyChangeEvent(final String name, final Object oldValue, final Object newValue) { this.delegate().firePropertyChangeEvent(name, oldValue, newValue); } public boolean needsSaving() { return this.delegate().needsSaving(); } public void putValue(final String name, @Nullable final String value) { this.delegate().putValue(name, value); } public void setToDefault(final String name) { this.delegate().setToDefault(name); } public boolean contains(final String name) { return this.delegate().contains(name); } public boolean isDefault(final String name) { return this.delegate().isDefault(name); } public void setDefault(final String name, final boolean value) { this.delegate().setDefault(name, value); } public void setDefault(final String name, final float value) { this.delegate().setDefault(name, value); } public void setDefault(final String name, final double value) { this.delegate().setDefault(name, value); } public void setDefault(final String name, final int value) { this.delegate().setDefault(name, value); } public void setDefault(final String name, final long value) { this.delegate().setDefault(name, value); } public void setDefault(final String name, @Nullable final String value) { this.delegate().setDefault(name, value); } public boolean getDefaultBoolean(final String name) { return this.delegate().getDefaultBoolean(name); } public float getDefaultFloat(final String name) { return this.delegate().getDefaultFloat(name); } public double getDefaultDouble(final String name) { return this.delegate().getDefaultDouble(name); } public int getDefaultInt(final String name) { return this.delegate().getDefaultInt(name); } public long getDefaultLong(final String name) { return this.delegate().getDefaultLong(name); } public String getDefaultString(final String name) { return this.delegate().getDefaultString(name); } public void setValue(final String name, final boolean value) { this.delegate().setValue(name, value); } public void setValue(final String name, final float value) { this.delegate().setValue(name, value); } public void setValue(final String name, final double value) { this.delegate().setValue(name, value); } public void setValue(final String name, final int value) { this.delegate().setValue(name, value); } public void setValue(final String name, final long value) { this.delegate().setValue(name, value); } public void setValue(final String name, @Nullable final String value) { this.delegate().setValue(name, value); } public boolean getBoolean(final String name) { return this.delegate().getBoolean(name); } public float getFloat(final String name) { return this.delegate().getFloat(name); } public double getDouble(final String name) { return this.delegate().getDouble(name); } public int getInt(final String name) { return this.delegate().getInt(name); } public long getLong(final String name) { return this.delegate().getLong(name); } public String getString(final String name) { return this.delegate().getString(name); } }