1 10 11 package org.mmbase.bridge.util; 12 13 import java.util.*; 14 import org.mmbase.bridge.*; 15 16 23 24 public class NodeChanger extends NodeWrapper { 25 protected Map originalValues = null; 26 27 public NodeChanger(Node node) { 28 super(node); 29 } 30 31 protected void change(String fieldName) { 32 if (originalValues == null) originalValues = new HashMap(); 33 if (! originalValues.containsKey(fieldName)) { 34 originalValues.put(fieldName, node.getValueWithoutProcess(fieldName)); 35 } 36 } 37 38 public void setValue(String fieldName, Object value) { change(fieldName); super.setValue(fieldName, value); } 39 public void setValueWithoutProcess(String fieldName, Object value) { change(fieldName); super.setValueWithoutProcess(fieldName, value); } 40 public void setObjectValue(String fieldName, Object value) { change(fieldName); super.setObjectValue(fieldName, value); } 41 public void setBooleanValue(String fieldName, boolean value) { change(fieldName); super.setBooleanValue(fieldName, value); } 42 public void setNodeValue(String fieldName, Node value) { change(fieldName); super.setNodeValue(fieldName, value); } 43 public void setIntValue(String fieldName, int value) { change(fieldName); super.setIntValue(fieldName, value); } 44 public void setFloatValue(String fieldName, float value) { change(fieldName); super.setFloatValue(fieldName, value); } 45 public void setDoubleValue(String fieldName, double value) { change(fieldName); super.setDoubleValue(fieldName, value); } 46 public void setByteValue(String fieldName, byte[] value) { change(fieldName); super.setByteValue(fieldName, value); } 47 public void setInputStreamValue(String fieldName, java.io.InputStream value, long size) { change(fieldName); super.setInputStreamValue(fieldName, value, size); } 48 public void setLongValue(String fieldName, long value) { change(fieldName); super.setLongValue(fieldName, value); } 49 public void setStringValue(String fieldName, String value) { change(fieldName); super.setStringValue(fieldName, value); } 50 public void setDateValue(String fieldName, Date value) { change(fieldName); super.setDateValue(fieldName, value); } 51 public void setListValue(String fieldName, List value) { change(fieldName); super.setListValue(fieldName, value); } 52 58 public boolean isChangedByThis() { 59 return originalValues != null && super.isChanged(); 60 } 61 62 public void cancelThis() { 63 if (originalValues != null) { 64 Iterator i = originalValues.entrySet().iterator(); 65 while (i.hasNext()) { 66 Map.Entry entry = (Map.Entry) i.next(); 67 getNode().setValueWithoutProcess((String ) entry.getKey(), entry.getValue()); 68 } 69 70 } 71 } 72 73 } 74 | Popular Tags |