org.tmatesoft.svn.core

## Class SVNPropertyValue

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

All Implemented Interfaces:
  java.io.Serializable

    public class SVNPropertyValue
    extends java.lang.Object
    implements java.io.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

Methods
`static SVNPropertyValue` `create(java.lang.String propertyValue)` Creates a new property value object representing a text property value.
`static SVNPropertyValue` `create(java.lang.String propertyName, byte[] data)` Creates a new property value object from the given byte array.
`static SVNPropertyValue` `create(java.lang.String propertyName, byte[] data, int offset, int length)` Creates a new property value object from the given byte array.
`boolean` `equals(java.lang.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 java.lang.String` `getPropertyAsString(SVNPropertyValue value)` Returns `String` representation of `value`.
`java.lang.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.
`java.lang.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 Detail

#### create

    public static SVNPropertyValue create(java.lang.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(java.lang.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(java.lang.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

#### 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 java.lang.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

#### 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 java.lang.String getString()

Returns property value string.

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

Returns:
  property value string

#### toString

    public java.lang.String toString()

Returns a string representation of this object.

Note: irrelevant for binary properties.

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

#### equals

    public boolean equals(java.lang.Object obj)

Says whether this object and `obj` are equal or not.

Overrides:
  `equals` in class `java.lang.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 `java.lang.Object`
Returns:
  hash code