jtulach@319: package org.apidesign.javamonitorflaws; jtulach@319: jtulach@319: import java.beans.PropertyChangeListener; jtulach@319: import java.beans.PropertyChangeSupport; jtulach@319: jtulach@319: /** jtulach@319: * jtulach@319: * @author Jaroslav Tulach jtulach@319: */ jtulach@319: // BEGIN: monitor.pitfalls.subclassok jtulach@319: public class MultiplyCacheOK extends CacheOK jtulach@319: implements CacheTest.CacheToTest { jtulach@319: private PropertyChangeSupport pcs; jtulach@319: private int multiply; jtulach@319: public static final String PROP_MULTIPLY = "multiply"; jtulach@319: jtulach@319: public synchronized int getMultiply() { jtulach@319: return multiply; jtulach@319: } jtulach@319: public synchronized void setMultiply(int multiply) { jtulach@319: int oldMultiply = this.multiply; jtulach@319: this.multiply = multiply; jtulach@319: pcs.firePropertyChange(PROP_MULTIPLY, oldMultiply, multiply); jtulach@319: } jtulach@319: jtulach@319: public synchronized void addPropertyChangeListener( jtulach@319: PropertyChangeListener listener jtulach@319: ) { jtulach@319: if (pcs == null) { jtulach@319: pcs = new PropertyChangeSupport(this); jtulach@319: } jtulach@319: pcs.addPropertyChangeListener(listener); jtulach@319: } jtulach@319: public synchronized void removePropertyChangeListener( jtulach@319: PropertyChangeListener listener jtulach@319: ) { jtulach@319: if (pcs != null) { jtulach@319: pcs.removePropertyChangeListener(listener); jtulach@319: } jtulach@319: } jtulach@319: jtulach@319: @Override jtulach@319: protected Integer createItem(String f) { jtulach@319: return f.length() * multiply; jtulach@319: } jtulach@319: } jtulach@319: // END: monitor.pitfalls.subclassok jtulach@319: jtulach@319: