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]

Reply via email to