luetzkendorf 2004/09/26 07:14:06
Modified: src/share/org/apache/slide/content Tag:
SLIDE_2_1_RELEASE_BRANCH
NodeRevisionDescriptor.java
Log:
introduced some lazy construction for updatedProperties and removed Properties
(reduces mem usage and increases speed)
Revision Changes Path
No revision
No revision
1.34.2.4 +25 -12
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.2.3
retrieving revision 1.34.2.4
diff -u -r1.34.2.3 -r1.34.2.4
--- NodeRevisionDescriptor.java 23 Sep 2004 15:21:18 -0000 1.34.2.3
+++ NodeRevisionDescriptor.java 26 Sep 2004 14:14:06 -0000 1.34.2.4
@@ -34,6 +34,7 @@
import java.util.Vector;
import org.apache.slide.common.ObjectValidationFailedException;
+import org.apache.slide.util.EmptyEnumeration;
import org.apache.slide.util.Messages;
/**
@@ -162,8 +163,6 @@
this.properties = new Hashtable();
this.labels = new Vector();
this.branchName = NodeRevisionDescriptors.MAIN_BRANCH;
- this.updatedProperties = new Hashtable();
- this.removedProperties = new Hashtable();
initDefaultProperties();
}
@@ -223,8 +222,8 @@
/**
* Track updated properties
*/
- private Hashtable updatedProperties;
- private Hashtable removedProperties;
+ private Hashtable updatedProperties = null;
+ private Hashtable removedProperties = null;
// ------------------------------------------------------------- Properties
@@ -404,6 +403,9 @@
public void setProperty(NodeProperty property) {
String name = getNamespacedPropertyName(property.getNamespace(),
property.getName());
properties.put(name, property);
+
+ if (this.updatedProperties == null) this.updatedProperties = new
Hashtable();
+ if (this.removedProperties == null) this.removedProperties = new
Hashtable();
updatedProperties.put(name, property);
removedProperties.remove(name);
}
@@ -440,6 +442,9 @@
NodeProperty nodeProperty = (NodeProperty )properties.remove(name);
// check if the property existed before
if (nodeProperty != null) {
+ if (this.updatedProperties == null) this.updatedProperties = new
Hashtable();
+ if (this.removedProperties == null) this.removedProperties = new
Hashtable();
+
removedProperties.put(name, nodeProperty);
updatedProperties.remove(name);
}
@@ -495,19 +500,27 @@
}
public Enumeration enumerateRemovedProperties() {
- return removedProperties.elements();
+ if (this.removedProperties == null) {
+ return EmptyEnumeration.INSTANCE;
+ } else {
+ return removedProperties.elements();
+ }
}
public Enumeration enumerateUpdatedProperties() {
- return updatedProperties.elements();
+ if (this.updatedProperties == null) {
+ return EmptyEnumeration.INSTANCE;
+ } else {
+ return updatedProperties.elements();
+ }
}
public void resetUpdatedProperties() {
- updatedProperties.clear();
+ updatedProperties = null;
}
public void resetRemovedProperties() {
- removedProperties.clear();
+ removedProperties = null;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]