org.tmatesoft.svn.core
Class SVNProperties

java.lang.Object
  extended by org.tmatesoft.svn.core.SVNProperties
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class SVNProperties
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

The SVNProperties class represents an object wrapper for String to SVNPropertyValue mappings where String keys represent property names and values - property values wrapped in SVNPropertyValue objects.

This class is backed by a Map object and brings specific methods useful for working with version controlled properties.

Objects of this type are modifiable.

Since:
1.2
See Also:
Serialized Form

Constructor Summary
SVNProperties()
          Creates an empty SVNProperties object.
SVNProperties(SVNProperties properties)
          Creates a new SVNProperties object copying the given one.
 
Method Summary
 java.util.Map asMap()
          Returns SVNProperties as Map of String, SVNPropertyValue pairs.
 void clear()
          Removes all properties from this object.
 java.lang.Object clone()
          Creates and returns a copy of this object.
 SVNProperties compareTo(SVNProperties properties)
          Compares this object against another one returning a difference between them.
 boolean containsName(java.lang.String propertyName)
          Tells whether this properties object contains the specified property name.
 boolean containsValue(SVNPropertyValue value)
          Tells whether this properties object contains the specified property value.
 boolean equals(java.lang.Object obj)
          Tells whether this object and obj are equal.
 byte[] getBinaryValue(java.lang.String propertyName)
          Returns a binary property value.
 SVNProperties getRegularProperties()
          Returns a subset of properties contained in this properties object which suffice for SVNProperty.isRegularProperty(String) clause.
 java.lang.String getStringValue(java.lang.String propertyName)
          Returns a String property value.
 SVNPropertyValue getSVNPropertyValue(java.lang.String propertyName)
          Returns a property value as an SVNPropertyValue.
 int hashCode()
          Returns a hash code of this object.
 boolean isEmpty()
          Tells if this properties object holds no properties (empty).
 java.util.Set<java.lang.String> nameSet()
          Returns a set of property names contained by this object.
 void put(java.lang.String propertyName, byte[] propertyValue)
          Stores a new property name-to-value mapping in this object.
 void put(java.lang.String propertyName, java.lang.String propertyValue)
          Stores a new property name-to-value mapping in this object.
 void put(java.lang.String propertyName, SVNPropertyValue propertyValue)
          Stores a new mapping propertyName to propertyValue in this object.
 void putAll(SVNProperties properties)
          Puts all properties from the specified properties object to this object.
 SVNPropertyValue remove(java.lang.String propertyName)
          Removes the specified property from this properties object.
 void removeNullValues()
          Removes all mappings which values are nulls from this object.
 int size()
          Returns the number of properties held by this object.
 java.lang.String toString()
           
static SVNProperties unmodifiableProperties(SVNProperties properties)
          Returns an unmodifiable view of the specified properties.
 java.util.Collection values()
          Returns a collection of property values contained in this properties object.
static SVNProperties wrap(java.util.Map map)
          Creates a new SVNProperties object wrapping a given map with properties.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SVNProperties

public SVNProperties()
Creates an empty SVNProperties object.


SVNProperties

public SVNProperties(SVNProperties properties)
Creates a new SVNProperties object copying the given one.

Parameters:
properties - an initializer
Method Detail

wrap

public static SVNProperties wrap(java.util.Map map)
Creates a new SVNProperties object wrapping a given map with properties.

map is not stored by this object, instead its contents are copied into a new Map object (which will be backed by a new SVNProperties object) according to the following rules:

Parameters:
map - initial map holding properties
Returns:
SVNProperties object; if map is null, returns an empty SVNProperties object created as new SVNProperties()
See Also:
SVNProperties()

unmodifiableProperties

public static SVNProperties unmodifiableProperties(SVNProperties properties)
Returns an unmodifiable view of the specified properties. Any attempt to modify the returned SVNProperties object result in an UnsupportedOperationException.

Parameters:
properties - SVNProperties object for which an unmodifiable view is to be returned.
Returns:
an unmodifiable view of the specified properties.

asMap

public java.util.Map asMap()
Returns SVNProperties as Map of String, SVNPropertyValue pairs.

Returns:
copy of SVNProperties as Map object

put

public void put(java.lang.String propertyName,
                SVNPropertyValue propertyValue)
Stores a new mapping propertyName to propertyValue in this object.

Parameters:
propertyName - property name
propertyValue - property value object

put

public void put(java.lang.String propertyName,
                java.lang.String propertyValue)
Stores a new property name-to-value mapping in this object.

propertyValue is converted to an SVNPropertyValue object through a call to SVNPropertyValue.create(String).

Parameters:
propertyName - property name
propertyValue - property value string

put

public void put(java.lang.String propertyName,
                byte[] propertyValue)
Stores a new property name-to-value mapping in this object.

propertyValue is converted to an SVNPropertyValue object through a call to SVNPropertyValue.create(String, byte[]).

Parameters:
propertyName - property name
propertyValue - property value bytes

getStringValue

public java.lang.String getStringValue(java.lang.String propertyName)
Returns a String property value.

Parameters:
propertyName - property name
Returns:
property value string; null if there's no such property or if it's not a String property value

getBinaryValue

public byte[] getBinaryValue(java.lang.String propertyName)
Returns a binary property value.

Parameters:
propertyName - property name
Returns:
byte array containing property value bytes; null if there's no such property or if it's not a binary property value

getSVNPropertyValue

public SVNPropertyValue getSVNPropertyValue(java.lang.String propertyName)
Returns a property value as an SVNPropertyValue.

Parameters:
propertyName - property name
Returns:
property value object; null if there's no such property

remove

public SVNPropertyValue remove(java.lang.String propertyName)
Removes the specified property from this properties object.

Parameters:
propertyName - name of the property to remove from this object
Returns:
the value of the removed object

putAll

public void putAll(SVNProperties properties)
Puts all properties from the specified properties object to this object.

Parameters:
properties - properties object

isEmpty

public boolean isEmpty()
Tells if this properties object holds no properties (empty).

Returns:
true if this object holds no properties; otherwise false

clear

public void clear()
Removes all properties from this object.


removeNullValues

public void removeNullValues()
Removes all mappings which values are nulls from this object.


size

public int size()
Returns the number of properties held by this object.

Returns:
number of properties

containsName

public boolean containsName(java.lang.String propertyName)
Tells whether this properties object contains the specified property name.

Parameters:
propertyName - property name
Returns:
true if this object contains a mapping with the specified key (propertyName)

nameSet

public java.util.Set<java.lang.String> nameSet()
Returns a set of property names contained by this object.

Returns:
property names set

containsValue

public boolean containsValue(SVNPropertyValue value)
Tells whether this properties object contains the specified property value.

Parameters:
value - property value
Returns:
true if this object contains value

values

public java.util.Collection values()
Returns a collection of property values contained in this properties object.

Returns:
property values collection

getRegularProperties

public SVNProperties getRegularProperties()
Returns a subset of properties contained in this properties object which suffice for SVNProperty.isRegularProperty(String) clause.

Returns:
regular properties; if there are no properties which would suffice the aforementioned clause, an empty SVNProperties object is returned

compareTo

public SVNProperties compareTo(SVNProperties properties)
Compares this object against another one returning a difference between them.

Properties which are present in this object but are not in properties, are put to the result as property name to null mappings. Properties which are present only in properties but not in this object, are added to the result. Also result will include those properties which are present in both objects but have different values; in this case result will include such properties with values from properties.

Parameters:
properties - another properties object
Returns:
properties object holding the properties difference

hashCode

public int hashCode()
Returns a hash code of this object.

A hash code is evaluated as follows: 31 + hash code of the underlying Map holding the property key to property value mappings.

Overrides:
hashCode in class java.lang.Object
Returns:
hash code of this object

equals

public boolean equals(java.lang.Object obj)
Tells whether this object and obj are equal.

Overrides:
equals in class java.lang.Object
Parameters:
obj - object to compare with
Returns:
true if obj is either this very object, or is an instance of SVNProperties with the same contents of properties

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Creates and returns a copy of this object.

Overrides:
clone in class java.lang.Object
Returns:
a clone of this instance
Throws:
java.lang.CloneNotSupportedException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object