Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * ====================================================================
   * Copyright (c) 2004-2006 TMate Software Ltd.  All rights reserved.
   *
   * This software is licensed as described in the file COPYING, which
   * you should have received as part of this distribution.  The terms
   * are also available at http://svnkit.com/license.html
   * If newer versions of this license are posted there, you may use a
   * newer version instead, at your option.
  * ====================================================================
  */
 package org.tmatesoft.svn.core.internal.wc.admin;
 
 import java.util.Map;
 

Author(s):
TMate Software Ltd.
Version:
1.1.0
 
 public abstract class SVNVersionedProperties {
     private Map myProperties;
     private boolean myIsModified;
     
     protected SVNVersionedProperties(Map props) {
          = props;
          = false;
     }
     
     public abstract boolean containsProperty(String namethrows SVNException;
     
     public abstract String getPropertyValue(String namethrows SVNException;
 
     public boolean isModified() {
         return ;
     }
     
     protected void setModified(boolean modified) {
          = modified;
     }
     
     public boolean isEmpty() throws SVNException {
         Map props = loadProperties();
         return props == null || props.isEmpty();
     }
     
     public Collection getPropertyNames(Collection targetthrows SVNException {
         Map props = loadProperties();
 
         target = target == null ? new TreeSet() : target;
         if (isEmpty()) {
             return target;
         }
         for (Iterator names = props.keySet().iterator(); names.hasNext();) {
             target.add(names.next());
         }
         return target;
     }
 
     public void setPropertyValue(String nameString valuethrows SVNException {
         Map props = loadProperties();
         if (value != null) {
             props.put(namevalue);
         } else {
             props.remove(name);
         }
          = true;
     }
 
     public SVNVersionedProperties compareTo(SVNVersionedProperties propertiesthrows SVNException {
         Map result = new HashMap();
         if (isEmpty()) {
             result.putAll(properties.asMap());
             return wrap(result);
         }
         
         Collection props1 = getPropertyNames(null);
         Collection props2 = properties.getPropertyNames(null);
         
         // missed in props2.
         Collection tmp = new TreeSet(props1);
         tmp.removeAll(props2);
         for (Iterator props = tmp.iterator(); props.hasNext();) {
             String missing = (Stringprops.next();
             result.put(missingnull);
         }
 
         // added in props2.
         tmp = new TreeSet(props2);
         tmp.removeAll(props1);
 
         for (Iterator props = tmp.iterator(); props.hasNext();) {
             String added = (Stringprops.next();
             result.put(addedproperties.getPropertyValue(added));
        }
        // changed in props2
        props2.retainAll(props1);
        for (Iterator props = props2.iterator(); props.hasNext();) {
            String changed = (Stringprops.next();
            String value1 = getPropertyValue(changed);
            String value2 = properties.getPropertyValue(changed);
            if (!value1.equals(value2)) {
                result.put(changedvalue2);
            }
        }
        return wrap(result);
    }
    
    public void copyTo(SVNVersionedProperties destinationthrows SVNException {
        Map props = loadProperties();
        if (isEmpty()) {
            destination.removeAll();
        } else {
            destination.put(props);
        }
    }
    
    public void removeAll() throws SVNException {
        Map props = loadProperties();
        if (!isEmpty()) {
            props.clear();
             = true;
        }
    }
    
    public boolean equals(SVNVersionedProperties propsthrows SVNException {
        return compareTo(props).isEmpty();
    }
    
    public Map asMap() throws SVNException {
        Map props = loadProperties() != null ? new HashMap(loadProperties()) : new HashMap();
        return props;
    }
    
    protected void put(Map propsthrows SVNException {
        Map thisProps = loadProperties(); 
        thisProps.clear();
        thisProps.putAll(props);
         = true;
    }
    protected Map getPropertiesMap() {
        return ;
    }
    
    protected void setPropertiesMap(Map props) {
         = props;
    }
    
    protected abstract SVNVersionedProperties wrap(Map properties);
    protected abstract Map loadProperties() throws SVNException;
New to GrepCode? Check out our FAQ X