## org.apache.tools.ant.taskdefs.optional.perforce
Class P4Counter

    java.lang.Object
      org.apache.tools.ant.ProjectComponent
          org.apache.tools.ant.Task
              org.apache.tools.ant.taskdefs.optional.perforce.P4Base
                  org.apache.tools.ant.taskdefs.optional.perforce.P4Counter

All Implemented Interfaces:
  java.lang.Cloneable

    public class P4Counter

extends P4Base

Obtains or sets the value of a counter.

When used in its base form (where only the counter name is provided), the counter value will be printed to the output stream. When the value is provided, the counter will be set to the value provided. When a property name is provided, the property will be filled with the value of the counter. You may not specify to both get and set the value of the counter in the same Task.

The user performing this task must have Perforce "review" permissions as defined by Perforce protections in order for this task to succeed.

Example Usage:
<p4counter name="${p4.counter}" property=${p4.change}"/>

Field Summary
`java.lang.String` `counter` name of the counter
`java.lang.String` `property` name of an optional property
`boolean` `shouldSetProperty` flag telling whether a property should be set
`boolean` `shouldSetValue` flag telling whether the value of the counter should be set
`int` `value` new value for the counter

Fields inherited from class org.apache.tools.ant.taskdefs.optional.perforce.P4Base
`failOnError, P4Client, P4CmdOpts, P4Opts, P4Port, P4User, P4View, shell, util`

Fields inherited from class org.apache.tools.ant.Task
`target, taskName, taskType, wrapper`

Fields inherited from class org.apache.tools.ant.ProjectComponent
`description, location, project`

Constructor Summary
`P4Counter()`

Method Summary
`void` `execute()` again, properties are mutable in this tsk
`void` `setName(java.lang.String counter)` The name of the counter; required
`void` `setProperty(java.lang.String property)` A property to be set with the value of the counter
`void` `setValue(int value)` The new value for the counter; optional.

Methods inherited from class org.apache.tools.ant.taskdefs.optional.perforce.P4Base
`execP4Command, execP4Command, getErrorMessage, getInError, init, setClient, setCmdopts, setErrorMessage, setFailonerror, setGlobalopts, setInError, setPort, setUser, setView`

Methods inherited from class org.apache.tools.ant.Task
`bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

Methods inherited from class org.apache.tools.ant.ProjectComponent
`clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### counter

    public java.lang.String counter

  name of the counter

### property

    public java.lang.String property

  name of an optional property

### shouldSetValue

    public boolean shouldSetValue

  flag telling whether the value of the counter should be set

### shouldSetProperty

    public boolean shouldSetProperty

  flag telling whether a property should be set

### value

    public int value

  new value for the counter

Constructor Detail

### P4Counter

    public P4Counter()

Method Detail

### setName

    public void setName(java.lang.String counter)

  The name of the counter; required

  Parameters:
    `counter` - name of the counter

### setValue

    public void setValue(int value)

  The new value for the counter; optional.

  Parameters:
    `value` - new value for the counter

### setProperty

    public void setProperty(java.lang.String property)

  A property to be set with the value of the counter

  Parameters:
    `property` - the name of a property to set with the value of the counter

### execute

    public void execute()
                 throws BuildException

  again, properties are mutable in this tsk

  Overrides:
    `execute` in class `Task`
  Throws:
    `BuildException` - if the required parameters are not supplied.