Package org.tmatesoft.svn.core.wc2

# Class SvnSetProperty

java.lang.Object
org.tmatesoft.svn.core.wc2.SvnOperation<SVNPropertyData>
org.tmatesoft.svn.core.wc2.SvnReceivingOperation<SVNPropertyData>
org.tmatesoft.svn.core.wc2.SvnSetProperty

All Implemented Interfaces:
  `ISvnObjectReceiver<SVNPropertyData>`, `ISvnOperationOptionsProvider`

public class SvnSetProperty extends SvnReceivingOperation<SVNPropertyData>
Represents set property operation. Sets `propertyName` to `propertyValue` on `target` or sets `propertyName` to `propertyValue` on `revision` in the repository represented by target. A `propertyValue` of `null` will delete the property.

If `propertyName` is an svn-controlled property (i.e. prefixed with `"svn:"`), then the caller is responsible for ensuring that the value is UTF8-encoded and uses LF line-endings.

- If it is the property of the target:

  `Target` should represent working copy path.

  If `depth` is `SVNDepth.EMPTY`, set the property on `target` only; if `SVNDepth.FILES`, set it on `target` and its file children (if any); if `SVNDepth.IMMEDIATES`, on `target` and all of its immediate children (both files and directories); if `SVNDepth.INFINITY`, on `target` and everything beneath it.

  `changeLists` is a collection of `String` changelist names, used as a restrictive filter on items whose properties are set; that is, don't set properties on any item unless it's a member of one of those changelists. If `changelists` is empty (or null), no changelist filtering occurs. *

  `SvnOperation.run()` methods operates only on working copies and does not open any network connection. This method throws `SVNException` if one of the following is true:

  - `target` does not exist
  - exception with `SVNErrorCode.CLIENT_PROPERTY_NAME` error code - if changed property name is a revision property name or not a valid property name or not a regular property name (one starting with a "svn:entry" or "svn:wc" prefix)

- If it is the property of revision:

  `Target` can be either URL or working copy path. If `target` is working copy path, repository URL is obtained from this.

  `Revision must be set`.

  The `authentication manager`, either provided by a caller or a default one, will be used for authentication.

  Although this routine accepts a working copy path it doesn't affect the working copy at all; it's a pure network operation that changes an *unversioned* property attached to a revision. This can be used to tweak log messages, dates, authors, and the like. Be careful: it's a lossy operation.

  Also note that unless the administrator creates a pre-revprop-change hook in the repository, this feature will fail. `SvnOperation.run()` return `SVNPropertyData` information of the property This method throws `SVNException` if one of the following is true:

  - exception with `SVNErrorCode.CLIENT_PROPERTY_NAME` error code - if `propertyName` is invalid

Version:
  1.7
Author:
  TMate Software Ltd.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`SvnSetProperty(SvnOperationFactory factory)`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`ensureArgumentsAreValid()`
`String`
`getPropertyName()`
Returns property name.
`SVNPropertyValue`
`getPropertyValue()`
Returns property value.
`ISvnPropertyValueProvider`
`getPropertyValueProvider()`
Returns property value provider callback
`boolean`
`isChangesWorkingCopy()`
Gets whether the operation changes working copy
`boolean`
`isForce()`
Sets whether to skip validity checking.
`boolean`
`isRevisionProperty()`
Gets whether it is revision property.
`void`
`setForce(boolean force)`
Sets whether to skip validity checking.
`void`
`setPropertyName(String propertyName)`
Sets property name
`void`
`setPropertyValue(SVNPropertyValue propertyValue)`
Sets property value
`void`
`setPropertyValueProvider(ISvnPropertyValueProvider propertyValueProvider)`
Sets property value provider callback
`void`
`setRevisionProperty(boolean revisionProperty)`
Sets whether it is revision property.

### Methods inherited from class org.tmatesoft.svn.core.wc2.SvnReceivingOperation

`first, getReceiver, initDefaults, last, receive, run, setReceiver`

### Methods inherited from class org.tmatesoft.svn.core.wc2.SvnOperation

`addTarget, cancel, ensureEnoughTargets, ensureHomohenousTargets, getApplicableChangelists, getAuthenticationManager, getCanceller, getDepth, getEventHandler, getFirstTarget, getMaximumTargetsCount, getMinimumTargetsCount, getOperationalWorkingCopy, getOperationFactory, getOptions, getRepositoryPool, getRevision, getSqliteJournalMode, getTargets, hasFileTargets, hasLocalTargets, hasRemoteTargets, isCancelled, isSleepForTimestamp, isUseParentWcFormat, needsHomohenousTargets, run, setApplicalbeChangelists, setDepth, setRevision, setSingleTarget, setSleepForTimestamp, setSqliteJournalMode`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SvnSetProperty

protected SvnSetProperty(SvnOperationFactory factory)

## Method Details

### isForce

public boolean isForce()
Sets whether to skip validity checking.

Returns:
  `true` if validity checking should not be done, otherwise `false`
See Also:
  - `setForce(boolean)`

### setForce

public void setForce(boolean force)
Sets whether to skip validity checking.

- For `target`'s property: If `force` is `true`, no validity checking is done. But if `force` is `false`, and `propertyName` is not a valid property for target, `SVNException` is thrown, either with an error code `SVNErrorCode.ILLEGAL_TARGET` (if the property is not appropriate for target), or with `SVNErrorCode.BAD_MIME_TYPE` (if `propertyName` is "svn:mime-type", but `propertyValue` is not a valid mime-type).

- For revision property: If `force` is `true` new lines in the author property are allowed.

### getPropertyValue

public SVNPropertyValue getPropertyValue()
Returns property value.

Returns:
  value of the property

### setPropertyValue

public void setPropertyValue(SVNPropertyValue propertyValue)
Sets property value

Parameters:
  `propertyValue` - value of the property

### setPropertyValueProvider

public void setPropertyValueProvider(ISvnPropertyValueProvider propertyValueProvider)
Sets property value provider callback

Parameters:
  `propertyValueProvider` - callback that will be called to get property values to set

### getPropertyValueProvider

public ISvnPropertyValueProvider getPropertyValueProvider()
Returns property value provider callback

Returns:
  property value provider callback set on this operation

### getPropertyName

public String getPropertyName()
Returns property name.

Returns:
  name of the property

### setPropertyName

public void setPropertyName(String propertyName)
Sets property name

Parameters:
  `propertyName` - name of the property

### ensureArgumentsAreValid

protected void ensureArgumentsAreValid() throws SVNException

Overrides:
  `ensureArgumentsAreValid` in class `SvnOperation<SVNPropertyData>`
Throws:
  `SVNException`

### setRevisionProperty

public void setRevisionProperty(boolean revisionProperty)
Sets whether it is revision property.

Parameters:
  `revisionProperty` - `true` if it is revision property, `true` if it is `target`'s property

### isRevisionProperty

public boolean isRevisionProperty()
Gets whether it is revision property.

Returns:
  `true` if it is revision property, `true` if it is `target`'s property

### isChangesWorkingCopy

public boolean isChangesWorkingCopy()
Gets whether the operation changes working copy

Overrides:
  `isChangesWorkingCopy` in class `SvnOperation<SVNPropertyData>`
Returns:
  `true` if the operation changes the working copy, otherwise `false`