You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by oz...@apache.org on 2004/08/11 09:51:06 UTC
cvs commit: jakarta-slide/src/share/org/apache/slide/content NodeRevisionDescriptor.java
ozeigermann 2004/08/11 00:51:06
Modified: src/share/org/apache/slide/content
NodeRevisionDescriptor.java
Log:
Committed forgotten class to complete performance enhancement
http://issues.apache.org/bugzilla/show_bug.cgi?id=30442
based on the work of Tara Talbott
Revision Changes Path
1.35 +46 -16 jakarta-slide/src/share/org/apache/slide/content/NodeRevisionDescriptor.java
Index: NodeRevisionDescriptor.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/content/NodeRevisionDescriptor.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- NodeRevisionDescriptor.java 28 Jul 2004 09:37:55 -0000 1.34
+++ NodeRevisionDescriptor.java 11 Aug 2004 07:51:06 -0000 1.35
@@ -162,6 +162,8 @@
this.properties = new Hashtable();
this.labels = new Vector();
this.branchName = NodeRevisionDescriptors.MAIN_BRANCH;
+ this.updatedProperties = new Hashtable();
+ this.removedProperties = new Hashtable();
initDefaultProperties();
}
@@ -217,7 +219,13 @@
* Properties field.
*/
private Hashtable properties;
-
+
+ /**
+ * Track updated properties
+ */
+ private Hashtable updatedProperties;
+ private Hashtable removedProperties;
+
// ------------------------------------------------------------- Properties
@@ -308,6 +316,7 @@
void setProperties(Hashtable properties) {
// FIXME : Do a clean merge
this.properties = properties;
+ this.updatedProperties = new Hashtable(properties);
}
@@ -393,20 +402,21 @@
* @param property Property
*/
public void setProperty(NodeProperty property) {
- properties.put(getNamespacedPropertyName(property.getNamespace(),
- property.getName()) ,
- property);
+ String name = getNamespacedPropertyName(property.getNamespace(), property.getName());
+ properties.put(name, property);
+ updatedProperties.put(name, property);
+ removedProperties.remove(name);
}
/**
* Remove a property.
- *
- * @param property Property
+ *
+ * @param property
+ * Property
*/
public void removeProperty(NodeProperty property) {
- properties.remove(getNamespacedPropertyName(property.getNamespace(),
- property.getName()));
+ removeProperty(property.getNamespace(), property.getName());
}
@@ -416,7 +426,7 @@
* @param property Property
*/
public void removeProperty(String property) {
- properties.remove(getNamespacedPropertyName(NodeProperty.DEFAULT_NAMESPACE, property));
+ removeProperty(property, NodeProperty.DEFAULT_NAMESPACE);
}
@@ -426,7 +436,13 @@
* @param property Property
*/
public void removeProperty(String property, String nameSpace) {
- properties.remove(getNamespacedPropertyName(nameSpace, property));
+ String name = getNamespacedPropertyName(nameSpace, property);
+ NodeProperty nodeProperty = (NodeProperty )properties.remove(name);
+ // check if the property existed before
+ if (nodeProperty != null) {
+ removedProperties.put(name, nodeProperty);
+ updatedProperties.remove(name);
+ }
}
@@ -477,8 +493,22 @@
public Enumeration enumerateProperties() {
return properties.elements();
}
-
-
+
+ public Enumeration enumerateRemovedProperties() {
+ return removedProperties.elements();
+ }
+
+ public Enumeration enumerateUpdatedProperties() {
+ return updatedProperties.elements();
+ }
+
+ public void resetUpdatedProperties() {
+ updatedProperties.clear();
+ }
+
+ public void resetRemovedProperties() {
+ removedProperties.clear();
+ }
/**
* Checks whether the value of the given property contains the specified
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org