package org.atricore.idbus.kernel.main.mediation.state; import java.util.ArrayList; import java.util.Collection; import java.util.List; public class EHCacheLocalStateImpl extends LocalStateImpl { private List<String> removedKeys = new ArrayList<String>(); public EHCacheLocalStateImpl(String id) { super(id); } private boolean dirty = true; public boolean isDirty() { return dirty; } public void setDirty(boolean dirty) { this.dirty = dirty; } @Override public synchronized void addAlternativeId(String idName, String id) { super.addAlternativeId(idName, id); this.dirty = true; } @Override public synchronized void removeAlternativeId(String idName) { String key = this.getAlternativeKey(idName); super.removeAlternativeId(idName); if (key != null) removedKeys.add(key); this.dirty = true; } @Override public synchronized void setValue(String key, Object value) { super.setValue(key, value); dirty = true; } @Override public synchronized void removeValue(String key) { super.removeValue(key); dirty = true; } public String getAlternativeKey(String idName) { String id = super.getAlternativeId(idName); if (id != null) return idName + ":" + id; return null; } public Collection<String> getRemovedKeys() { return removedKeys; } public synchronized void clearState() { dirty = false; removedKeys.clear(); } }