Class 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:

Version:
1.7
  • Field Details

    • force

      private boolean force
    • revisionProperty

      private boolean revisionProperty
    • propertyName

      private String propertyName
    • propertyValue

      private SVNPropertyValue propertyValue
    • propertyValueProvider

      private ISvnPropertyValueProvider propertyValueProvider
  • Constructor Details

  • 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

      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