Package org.tmatesoft.svn.core

# Class SVNPropertyValue

java.lang.Object
org.tmatesoft.svn.core.SVNPropertyValue

All Implemented Interfaces:
  `Serializable`

public class SVNPropertyValue extends Object implements Serializable
The SVNPropertyValue represents an object wrapper for string and binary version controlled properties providing a set of specific methods to work with them.

Since version 1.2 the `SVNKit` library supports binary properties as well.

Since:
  1.2
Version:
  1.3
Author:
  TMate Software Ltd.
See Also:
  - Serialized Form

## Method Summary

Modifier and Type
Method
Description
`static boolean`
`areEqual(SVNPropertyValue propertyValue1, SVNPropertyValue propertyValue2)`
`void`
`clear()`
`static SVNPropertyValue`
`create(char[] propertyValue, String encoding)`
Creates a new property value object representing a text property value.
`static SVNPropertyValue`
`create(String propertyValue)`
Creates a new property value object representing a text property value.
`static SVNPropertyValue`
`create(String propertyName, byte[] data)`
Creates a new property value object from the given byte array.
`static SVNPropertyValue`
`create(String propertyName, byte[] data, int offset, int length)`
Creates a new property value object from the given byte array.
`boolean`
`equals(Object obj)`
Says whether this object and `obj` are equal or not.
`byte[]`
`getBytes()`
Returns property value bytes.
`static byte[]`
`getPropertyAsBytes(SVNPropertyValue value)`
Returns `byte[]` representation of `value`.
`static char[]`
`getPropertyAsChars(SVNPropertyValue value)`
Returns `String` representation of `value`.
`static String`
`getPropertyAsString(SVNPropertyValue value)`
Returns `String` representation of `value`.
`String`
`getString()`
Returns property value string.
`int`
`hashCode()`
Returns the hash code for this object.
`boolean`
`isBinary()`
Says whether the property value wrapped by this object is binary or not.
`boolean`
`isString()`
Says whether the property value wrapped by this object is `String` or not.
`String`
`toString()`
Returns a string representation of this object.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Method Details

### create

public static SVNPropertyValue create(String propertyName, byte[] data, int offset, int length)
Creates a new property value object from the given byte array.

This method is intended to instantiate binary property values. However if `propertyName` is of `svn domain`, then it attempts to encode the passed bytes into a `String` value using the "UTF-8" charset. Finally, the property value object is created via a call to `create(String)`. In this way the text nature of the property is automatically preserved to avoid binary/text properties mess.

Parameters:
  `propertyName` - property name
  `data` - array containing property bytes
  `offset` - offset in `data` to copy bytes from
  `length` - amount of bytes to copy from `data`
Returns:
  new property value object; null if `data` is null

### create

public static SVNPropertyValue create(String propertyName, byte[] data)
Creates a new property value object from the given byte array.

This method is equivalent to `create(propertyName, data, 0, data.length)`.

Parameters:
  `propertyName` - property name
  `data` - array containing property bytes
Returns:
  new property value object; null if `data` is null
See Also:
  - `create(String, byte[], int, int)`

### create

public static SVNPropertyValue create(String propertyValue)
Creates a new property value object representing a text property value.

This method is intended to create text property values only.

Parameters:
  `propertyValue` - text property value which is stored as is
Returns:
  new property value object; null if `propertyValue` is null

### create

public static SVNPropertyValue create(char[] propertyValue, String encoding)
Creates a new property value object representing a text property value.

This method is intended to create text property values only.

Parameters:
  `propertyValue` - text property value which is stored as is
Returns:
  new property value object; null if `propertyValue` is null

### getPropertyAsBytes

public static byte[] getPropertyAsBytes(SVNPropertyValue value)
Returns `byte[]` representation of `value`.

If `value` is a `string` property value, then bytes of the string are encoded using the "UTF-8" charset and returned by this method. If encoding fails, then bytes are encoded using the default platform's charset.

Otherwise, `getBytes()` is returned.

Parameters:
  `value` - property value object
Returns:
  bytes of the property value represented by `value`; null if `value` is null

### getPropertyAsString

public static String getPropertyAsString(SVNPropertyValue value)
Returns `String` representation of `value`.

If `value` is a `binary` property value, then its bytes are converted to a `String` encoding them with the "UTF-8" charset and returned back to the caller. If that encoding fails, bytes are encoded with the default platform's charset.

Otherwise, `getString()` is returned.

Parameters:
  `value` - property value object
Returns:
  string property value; null if `value` is null

### getPropertyAsChars

public static char[] getPropertyAsChars(SVNPropertyValue value)
Returns `String` representation of `value`.

If `value` is a `binary` property value, then its bytes are converted to a `String` encoding them with the "UTF-8" charset and returned back to the caller. If that encoding fails, bytes are encoded with the default platform's charset.

Otherwise, `getString()` is returned.

Parameters:
  `value` - property value object
Returns:
  string property value; null if `value` is null

### isBinary

public boolean isBinary()
Says whether the property value wrapped by this object is binary or not.

Returns:
  true if binary, otherwise false

### getBytes

public byte[] getBytes()
Returns property value bytes.

Note: this will be always null for `String` property values.

Returns:
  byte array with property value bytes

### isString

public boolean isString()
Says whether the property value wrapped by this object is `String` or not.

Returns:
  true if textual, otherwise false

### getString

public String getString()
Returns property value string.

Note: this will be always null for binary property values.

Returns:
  property value string

### toString

public String toString()
Returns a string representation of this object.

Note: irrelevant for binary properties.

Overrides:
  `toString` in class `Object`
Returns:
  string representation of this object

### equals

public boolean equals(Object obj)
Says whether this object and `obj` are equal or not.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - object to compare with
Returns:
  true in the following cases:
  `obj` is the same as this one (by reference)
  if `obj` is an `SVNPropertyValue` and either has got the same `String` value in case this object holds a `String` value, or the same byte array contents if this object represents a binary property value

### hashCode

public int hashCode()
Returns the hash code for this object. If this object represents a `string` property, then returns the hash code of the `String` object. Otherwise, this object represents a binary property and the hash code of the `byte[]` array is returned.

Overrides:
  `hashCode` in class `Object`
Returns:
  hash code

### areEqual

public static boolean areEqual(SVNPropertyValue propertyValue1, SVNPropertyValue propertyValue2)

### clear

public void clear()