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