org.tmatesoft.svn.core.wc2

## Class SvnSetProperty

- java.lang.Object
- - org.tmatesoft.svn.core.wc2.SvnOperation<T>
  - - 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.

- - ### Property Summary

    All Methods Instance Methods Concrete Methods
    Type | Property and Description
    --- | ---
    `boolean` | `isRevision` Gets the value of the property revisionProperty.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SvnSetProperty(SvnOperationFactory factory)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `ensureArgumentsAreValid()`
    `java.lang.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 the value of the property revisionProperty.
    `void` | `setForce(boolean force)` Sets whether to skip validity checking.
    `void` | `setPropertyName(java.lang.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`

- - ### Property Detail

    - #### isRevision

          public boolean isRevisionProperty

      Gets the value of the property revisionProperty.

  - ### Constructor Detail

    - #### SvnSetProperty

          protected SvnSetProperty(SvnOperationFactory factory)

  - ### Method Detail

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

      Returns property name.
      Returns:
        name of the property

    - #### setPropertyName

          public void setPropertyName(java.lang.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 the value of the property revisionProperty.

    - #### 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`