summaryrefslogtreecommitdiff
path: root/src/main/org/apache
diff options
context:
space:
mode:
authorAntoine Levy-Lambert <antoine@apache.org>2003-07-14 22:13:18 +0000
committerAntoine Levy-Lambert <antoine@apache.org>2003-07-14 22:13:18 +0000
commita12cf63191aece501e0c5b2603c6b72cad03caf8 (patch)
tree1561ad59a9d160d67db86613cc0da58bf491e7d6 /src/main/org/apache
parent787728897a6052af385456788bc4e578ba170ba5 (diff)
downloadant-a12cf63191aece501e0c5b2603c6b72cad03caf8.tar.gz
checkstyle
remainders : mostly instance variables which should be private but are protected or public git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274820 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/main/org/apache')
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java6
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java30
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java62
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java28
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java26
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java11
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java8
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java38
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java22
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java45
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java45
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java14
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java33
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java10
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java6
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java6
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java84
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java8
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java26
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java19
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java17
21 files changed, 411 insertions, 133 deletions
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java
index 113f61f80..968e6aac8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/FStatP4OutputHandler.java
@@ -58,9 +58,9 @@ import org.apache.oro.text.perl.Perl5Util;
import java.util.ArrayList;
-/**
+/**
* FStatP4OutputHandler - spezialied Perforce output handler
- * able to sort files recognized as managed by Perforce and files not
+ * able to sort files recognized as managed by Perforce and files not
* managed by Perforce in the output
*
* @author <A HREF="mailto:miha@softhome.net">Miha</A>
@@ -83,7 +83,7 @@ class FStatP4OutputHandler extends P4HandlerAdapter {
String f = util.group(1);
nonExisting.add(f);
}
- parent.log(parent.util.substitute("s/^.*: //", line),
+ parent.log(parent.util.substitute("s/^.*: //", line),
Project.MSG_VERBOSE);
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java
index 1a5d46f3b..57c654596 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Add.java
@@ -72,9 +72,16 @@ import org.apache.tools.ant.types.FileSet;
* <b>Example Usage:</b>
* <table border="1">
* <th>Function</th><th>Command</th>
- * <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings specified</td><td>&lt;P4add <br>P4view="//projects/foo/main/source/..." <br>P4User="fbloggs" <br>P4Port="km01:1666" <br>P4Client="fbloggsclient"&gt;<br>&lt;fileset basedir="dir" includes="**&#47;*.java"&gt;<br>&lt;/p4add&gt;</td></tr>
- * <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings defined in environment</td><td>&lt;P4add P4view="//projects/foo/main/source/..." /&gt;<br>&lt;fileset basedir="dir" includes="**&#47;*.java"&gt;<br>&lt;/p4add&gt;</td></tr>
- * <tr><td>Specify the length of command line arguments to pass to each invocation of p4</td><td>&lt;p4add Commandlength="450"&gt;</td></tr>
+ * <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings specified</td>
+ * <td>&lt;P4add <br>P4view="//projects/foo/main/source/..." <br>P4User="fbloggs"
+ * <br>P4Port="km01:1666"
+ * <br>P4Client="fbloggsclient"&gt;<br>&lt;fileset basedir="dir" includes="**&#47;*.java"&gt;<br>
+ * &lt;/p4add&gt;</td></tr>
+ * <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings defined in environment</td><td>
+ * &lt;P4add P4view="//projects/foo/main/source/..." /&gt;<br>&lt;fileset basedir="dir"
+ * includes="**&#47;*.java"&gt;<br>&lt;/p4add&gt;</td></tr>
+ * <tr><td>Specify the length of command line arguments to pass to each invocation of p4</td>
+ * <td>&lt;p4add Commandlength="450"&gt;</td></tr>
* </table>
*
* @author <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
@@ -83,17 +90,19 @@ import org.apache.tools.ant.types.FileSet;
* @ant.task category="scm"
*/
public class P4Add extends P4Base {
-
+ private static final int DEFAULT_CMD_LENGTH = 450;
private int changelist;
private String addCmd = "";
private Vector filesets = new Vector();
- private int cmdLength = 450;
+ private int cmdLength = DEFAULT_CMD_LENGTH;
/**
* positive integer specifying the maximum length
* of the commandline when calling Perforce to add the files.
* Defaults to 450, higher values mean faster execution,
* but also possible failures.
+ * @param len maximum length of command line default is 450.
+ * @throws BuildException if trying to set the command line length to 0 or less.
*/
public void setCommandlength(int len) throws BuildException {
@@ -107,6 +116,10 @@ public class P4Add extends P4Base {
* If specified the open files are associated with the
* specified pending changelist number; otherwise the open files are
* associated with the default changelist.
+ *
+ * @param changelist the change list number
+ *
+ * @throws BuildException if trying to set a change list number &lt;=0.
*/
public void setChangelist(int changelist) throws BuildException {
if (changelist <= 0) {
@@ -118,11 +131,18 @@ public class P4Add extends P4Base {
/**
* files to add
+ *
+ * @param set the FileSet that one wants to add to Perforce Source Control
*/
public void addFileset(FileSet set) {
filesets.addElement(set);
}
+ /**
+ * run the task.
+ *
+ * @throws BuildException if the execution of the Perforce command fails.
+ */
public void execute() throws BuildException {
if (P4View != null) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java
index 42dc06f1b..73142f7f3 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Base.java
@@ -75,7 +75,7 @@ import org.apache.tools.ant.types.Commandline;
* @see P4Edit
* @see P4Submit
* @see P4Label
- * @see org.apache.tools.ant.taskdefs.Exec
+ * @see org.apache.tools.ant.taskdefs.Execute
* @author <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
*/
public abstract class P4Base extends org.apache.tools.ant.Task {
@@ -112,6 +112,8 @@ public abstract class P4Base extends org.apache.tools.ant.Task {
/**
* The p4d server and port to connect to;
* optional, default "perforce:1666"
+ *
+ * @param P4Port the port one wants to set such as localhost:1666
*/
public void setPort(String P4Port) {
this.P4Port = "-p" + P4Port;
@@ -120,6 +122,8 @@ public abstract class P4Base extends org.apache.tools.ant.Task {
/**
* The p4 client spec to use;
* optional, defaults to the current user
+ *
+ * @param P4Client the name of the Perforce client spec
*/
public void setClient(String P4Client) {
this.P4Client = "-c" + P4Client;
@@ -128,22 +132,34 @@ public abstract class P4Base extends org.apache.tools.ant.Task {
/**
* The p4 username;
* optional, defaults to the current user
+ *
+ * @param P4User the user name
*/
public void setUser(String P4User) {
this.P4User = "-u" + P4User;
}
-
/**
* Set global P4 options; Used on all
* of the Perforce tasks.
- */
+ *
+ * @param P4Opts global options, to use a specific P4Config file for instance
+ */
public void setGlobalopts(String P4Opts) {
this.P4Opts = P4Opts;
}
-
/**
* The client, branch or label view to operate upon;
- * optional default "//..."
+ * optional default "//...".
+ *
+ * the view is required for the following tasks :
+ * <ul>
+ * <li>p4delete</li>
+ * <li>p4edit</li>
+ * <li>p4reopen</li>
+ * <li>p4resolve</li>
+ * </ul>
+ *
+ * @param P4View the view one wants to use
*/
public void setView(String P4View) {
this.P4View = P4View;
@@ -152,6 +168,9 @@ public abstract class P4Base extends org.apache.tools.ant.Task {
/**
* Set extra command options; only used on some
* of the Perforce tasks.
+ *
+ * @param P4CmdOpts command line options going after the particular
+ * Perforce command
*/
public void setCmdopts(String P4CmdOpts) {
this.P4CmdOpts = P4CmdOpts;
@@ -160,11 +179,24 @@ public abstract class P4Base extends org.apache.tools.ant.Task {
/**
* whether to stop the build (true, default)
* or keep going if an error is returned from the p4 command
+ * @param fail indicates whether one wants to fail the build if an error comes from the
+ * Perforce command
*/
public void setFailonerror(boolean fail) {
failOnError = fail;
}
-
+ /**
+ * sets attributes Port, Client, User from properties
+ * if these properties are defined.
+ * Called automatically by UnknownElement
+ * @see org.apache.tools.ant.UnknownElement
+ * <table>
+ * <tr><th>Property</th><th>Attribute</th></tr>
+ * <tr><td>p4.port</td><td>Port</td></tr>
+ * <tr><td>p4.client</td><td>Client</td></tr>
+ * <tr><td>p4.user</td><td>User</td></tr>
+ * </table>
+ */
public void init() {
util = new Perl5Util();
@@ -182,14 +214,23 @@ public abstract class P4Base extends org.apache.tools.ant.Task {
setUser(tmpprop);
}
}
-
+ /**
+ * no usages found for this method
+ * runs a Perforce command without a handler
+ * @param command the command that one wants to execute
+ * @throws BuildException if failonerror is set and the command fails
+ */
protected void execP4Command(String command) throws BuildException {
execP4Command(command, null);
}
- /** Execute P4 command assembled by subclasses.
- @param command The command to run
- @param handler A P4Handler to process any input and output
+ /**
+ * Execute P4 command assembled by subclasses.
+ *
+ * @param command The command to run
+ * @param handler A P4Handler to process any input and output
+ *
+ * @throws BuildException if failonerror has been set to true
*/
protected void execP4Command(String command, P4Handler handler) throws BuildException {
try {
@@ -232,6 +273,7 @@ public abstract class P4Base extends org.apache.tools.ant.Task {
try {
handler.stop();
} catch (Exception e) {
+ log(e.toString(), Project.MSG_ERR);
}
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java
index e7a529b2b..dbac4e5a4 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java
@@ -81,7 +81,9 @@ public class P4Change extends P4Base {
protected String description = "AutoSubmit By Ant";
/**
- * throw all immutability rules to the wind
+ * creates a new Perforce change list
+ * sets the p4.change property to the number of the new change list
+ * @throws BuildException if the word error appears in the output coming from Perforce
*/
public void execute() throws BuildException {
@@ -113,7 +115,12 @@ public class P4Change extends P4Base {
execP4Command("change -i", handler);
}
-
+ /**
+ * returns the text of an empty change list
+ * @return the text of an empty change list
+ * @throws BuildException if the text error is displayed
+ * in the Perforce output outside of a comment line
+ */
public String getEmptyChangeList() throws BuildException {
final StringBuffer stringbuf = new StringBuffer();
@@ -121,28 +128,23 @@ public class P4Change extends P4Base {
public void process(String line) {
if (!util.match("/^#/", line)) {
if (util.match("/error/", line)) {
-
log("Client Error", Project.MSG_VERBOSE);
- throw new BuildException("Perforce Error, check client settings and/or server");
-
+ throw new BuildException("Perforce Error, "
+ + "check client settings and/or server");
} else if (util.match("/<enter description here>/", line)) {
-
// we need to escape the description in case there are /
description = backslash(description);
- line = util.substitute("s/<enter description here>/" + description + "/", line);
-
+ line = util.substitute("s/<enter description here>/"
+ + description + "/", line);
} else if (util.match("/\\/\\//", line)) {
//Match "//" for begining of depot filespec
return;
}
-
stringbuf.append(line);
stringbuf.append("\n");
-
}
}
});
-
return stringbuf.toString();
}
@@ -152,7 +154,8 @@ public class P4Change extends P4Base {
* always backslashes in a string unless they escape the delimiter.
* @param value the string to backslash for slashes
* @return the backslashed string
- * @see < a href="http://jakarta.apache.org/oro/api/org/apache/oro/text/perl/Perl5Util.html#substitute(java.lang.String,%20java.lang.String)">Oro</a>
+ * @see <a href="http://jakarta.apache.org/oro/api/org/apache/oro/text/perl/Perl5Util.html
+ * #substitute(java.lang.String,%20java.lang.String)">Oro</a>
*/
public static final String backslash(String value) {
final StringBuffer buf = new StringBuffer(value.length());
@@ -170,6 +173,7 @@ public class P4Change extends P4Base {
/**
* Description for ChangeList;optional.
* If none is specified, it will default to "AutoSubmit By Ant"
+ * @param desc description for the change list
*/
public void setDescription(String desc) {
this.description = desc;
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java
index 434972a3b..6595c34be 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Counter.java
@@ -86,14 +86,30 @@ import org.apache.tools.ant.Project;
*/
public class P4Counter extends P4Base {
+ /**
+ * name of the counter
+ */
public String counter = null;
+ /**
+ * name of an optional property
+ */
public String property = null;
+ /**
+ * flag telling whether the value of the counter should be set
+ */
public boolean shouldSetValue = false;
+ /**
+ * flag telling whether a property should be set
+ */
public boolean shouldSetProperty = false;
+ /**
+ * new value for the counter
+ */
public int value = 0;
/**
* The name of the counter; required
+ * @param counter name of the counter
*/
public void setName(String counter) {
this.counter = counter;
@@ -101,6 +117,7 @@ public class P4Counter extends P4Base {
/**
* The new value for the counter; optional.
+ * @param value new value for the counter
*/
public void setValue(int value) {
this.value = value;
@@ -109,6 +126,8 @@ public class P4Counter extends P4Base {
/**
* A property to be set with the value of the counter
+ * @param property the name of a property to set with the value
+ * of the counter
*/
public void setProperty(String property) {
this.property = property;
@@ -117,6 +136,7 @@ public class P4Counter extends P4Base {
/**
* again, properties are mutable in this tsk
+ * @throws BuildException if the required parameters are not supplied.
*/
public void execute() throws BuildException {
@@ -125,7 +145,8 @@ public class P4Counter extends P4Base {
}
if (shouldSetValue && shouldSetProperty) {
- throw new BuildException("Cannot both set the value of the property and retrieve the value of the property.");
+ throw new BuildException("Cannot both set the value of the property and retrieve the "
+ + "value of the property.");
}
String command = "counter " + P4CmdOpts + " " + counter;
@@ -150,7 +171,8 @@ public class P4Counter extends P4Base {
value = Integer.parseInt(line);
myProj.setProperty(property, "" + value);
} catch (NumberFormatException nfe) {
- throw new BuildException("Perforce error. Could not retrieve counter value.");
+ throw new BuildException("Perforce error. "
+ + "Could not retrieve counter value.");
}
}
};
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java
index 552e749c7..e73b1db18 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Delete.java
@@ -65,22 +65,31 @@ import org.apache.tools.ant.BuildException;
* @todo What to do if file is already open in one of our changelists perhaps
* (See also {@link P4Edit P4Edit})?<br>
*
- * @author <A HREF="mailto:mike@tmorph.com">Mike Roberts</A>, <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
+ * @author <A HREF="mailto:mike@tmorph.com">Mike Roberts</A>
+ * @author <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
*
* @ant.task category="scm"
*/
public class P4Delete extends P4Base {
+ /**
+ * number of the change list to work on
+ */
public String change = null;
/**
* An existing changelist number for the deletion; optional
* but strongly recommended.
+ * @param change the number of a change list
*/
public void setChange(String change) {
this.change = change;
}
+ /**
+ * executes the p4 delete task
+ * @throws BuildException if there is no view specified
+ */
public void execute() throws BuildException {
if (change != null) {
P4CmdOpts = "-c " + change;
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java
index 2ac09fbed..2bf608c77 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Edit.java
@@ -78,16 +78,24 @@ import org.apache.tools.ant.BuildException;
public class P4Edit extends P4Base {
+ /**
+ * number of the change list to work on
+ */
public String change = null;
/**
* An existing changelist number to assign files to; optional
* but strongly recommended.
+ * @param change the change list number
*/
public void setChange(String change) {
this.change = change;
}
+ /**
+ * Run the p4 edit command
+ * @throws BuildException if there is no view specified
+ */
public void execute() throws BuildException {
if (change != null) {
P4CmdOpts = "-c " + change;
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java
index c3b6971b1..deb380aa7 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Fstat.java
@@ -74,7 +74,8 @@ import org.apache.tools.ant.types.FileSet;
*
* <br><b>Example Usage:</b><br>
* <pre>
- * &lt;project name=&quot;p4fstat&quot; default=&quot;p4fstat&quot; basedir=&quot;C:\dev\gnu&quot;&gt;
+ * &lt;project name=&quot;p4fstat&quot; default=&quot;p4fstat&quot;
+ * basedir=&quot;C:\dev\gnu&quot;&gt;
* &lt;target name=&quot;p4fstat&quot; &gt;
* &lt;p4fstat showfilter=&quot;all&quot;&gt;
* &lt;fileset dir=&quot;depot&quot; includes=&quot;**\/*&quot;/&gt;
@@ -94,7 +95,8 @@ public class P4Fstat extends P4Base {
private int changelist;
private String addCmd = "";
private Vector filesets = new Vector();
- private int cmdLength = 300;
+ private static final int DEFAULT_CMD_LENGTH = 300;
+ private int cmdLength = DEFAULT_CMD_LENGTH;
private static final int SHOW_ALL = 0;
private static final int SHOW_EXISTING = 1;
private static final int SHOW_NON_EXISTING = 2;
@@ -110,7 +112,16 @@ public class P4Fstat extends P4Base {
private static final String NONEXISTING_HEADER
= "Following files do not exist in perforce";
-
+ /**
+ * sets the filter that one wants applied
+ * <table>
+ * <tr><th>Option</th><th>Meaning</th></tr>
+ * <tr><td>all</td><td>all files under Perforce control or not</td></tr>
+ * <tr><td>existing</td><td>only files under Perforce control</td></tr>
+ * <tr><td>non-existing</td><td>only files not under Perforce control or not</td></tr>
+ * </table>
+ * @param filter should be one of all|existing|non-existing
+ */
public void setShowFilter(String filter) {
if (filter.equalsIgnoreCase("all")) {
show = SHOW_ALL;
@@ -124,7 +135,11 @@ public class P4Fstat extends P4Base {
}
}
-
+ /**
+ * sets optionally a change list number
+ * @param changelist change list that one wants information about
+ * @throws BuildException if the change list number is negative
+ */
public void setChangelist(int changelist) throws BuildException {
if (changelist <= 0) {
throw new BuildException("P4FStat: Changelist# should be a "
@@ -134,10 +149,18 @@ public class P4Fstat extends P4Base {
this.changelist = changelist;
}
+ /**
+ * adds a fileset to be examined by p4fstat
+ * @param set the fileset to add
+ */
public void addFileset(FileSet set) {
filesets.addElement(set);
}
+ /**
+ * executes the p4fstat task
+ * @throws BuildException if no files are specified
+ */
public void execute() throws BuildException {
handler = new FStatP4OutputHandler(this);
@@ -172,7 +195,7 @@ public class P4Fstat extends P4Base {
execP4Fstat(filelist);
}
} else {
- log("No files specified to add!", Project.MSG_WARN);
+ log("No files specified to query status on!", Project.MSG_WARN);
}
}
@@ -186,7 +209,10 @@ public class P4Fstat extends P4Base {
}
-
+ /**
+ * return the number of files seen
+ * @return the number of files seen
+ */
public int getLengthOfTask() {
return fileNum;
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java
index 77578b444..542325b0f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Handler.java
@@ -64,15 +64,17 @@ import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
*/
public interface P4Handler extends ExecuteStreamHandler {
- /**
- * processing of one line of stdout or of stderr
- * @param line
- */
- public void process(String line) throws BuildException;
+ /**
+ * processing of one line of stdout or of stderr
+ * @param line a line of stdout or stderr that the implementation will process
+ * @throws BuildException at the discretion of the implementation.
+ */
+ void process(String line) throws BuildException;
- /**
- * set any data to be written to P4's stdin
- * @param line the text to write to P4's stdin
- */
- public void setOutput(String line) throws BuildException;
+ /**
+ * set any data to be written to P4's stdin
+ * @param line the text to write to P4's stdin
+ * @throws BuildException if the line cannot be processed.
+ */
+ void setOutput(String line) throws BuildException;
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java
index 6b9e04831..a4e2eccdb 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java
@@ -62,8 +62,9 @@ import java.io.OutputStream;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.PumpStreamHandler;
/**
- * base class to manage streams around the execution of the Perforce
- * command line client
+ * base class to manage streams around the execution of the Perforce
+ * command line client
+ * @author <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
*/
public abstract class P4HandlerAdapter implements P4Handler {
@@ -79,15 +80,21 @@ public abstract class P4HandlerAdapter implements P4Handler {
/**
* subclasses of P4HandlerAdapter must implement this routine
* processing of one line of stdout or of stderr
- * @param line
+ * @param line line of stdout or stderr to process
*/
public abstract void process(String line);
+ /**
+ * this routine gets called by the execute routine of the Execute class
+ * it connects the PumpStreamHandler to the input/output/error streams of the process.
+ * @throws BuildException
+ * @see org.apache.tools.ant.taskdefs.Execute#execute
+ */
public void start() throws BuildException {
if (p4input != null && p4input.length() > 0) {
- myHandler = new PumpStreamHandler(new P4OutputStream(this),new P4OutputStream(this), new ByteArrayInputStream(p4input.getBytes()));
- }
- else {
+ myHandler = new PumpStreamHandler(new P4OutputStream(this), new P4OutputStream(this),
+ new ByteArrayInputStream(p4input.getBytes()));
+ } else {
myHandler = new PumpStreamHandler(new P4OutputStream(this), new P4OutputStream(this));
}
myHandler.setProcessInputStream(os);
@@ -96,22 +103,44 @@ public abstract class P4HandlerAdapter implements P4Handler {
myHandler.start();
}
+ /**
+ * stops the processing of streams
+ * called from P4Base#execP4Command(String command, P4Handler handler)
+ * @see P4Base#execP4Command(String, P4Handler)
+ */
public void stop() {
myHandler.stop();
}
- OutputStream os; //OUtput
- InputStream is; //Input
+ OutputStream os; //Input
+ InputStream is; //Output
InputStream es; //Error
+ /**
+ * connects the handler to the input stream into Perforce
+ * used indirectly by tasks requiring to send specific standard input
+ * such as p4label, p4change
+ * @param os the stream bringing input to the p4 executable
+ * @throws IOException under unknown circumstances
+ */
public void setProcessInputStream(OutputStream os) throws IOException {
this.os = os;
}
+ /**
+ * connects the handler to the stderr of the Perforce process
+ * @param is stderr coming from Perforce
+ * @throws IOException under unknown circumstances
+ */
public void setProcessErrorStream(InputStream is) throws IOException {
this.es = is;
}
+ /**
+ * connects the handler to the stdout of the Perforce process
+ * @param is stdout coming from Perforce
+ * @throws IOException under unknown circumstances
+ */
public void setProcessOutputStream(InputStream is) throws IOException {
this.is = is;
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java
index 7576833f1..24181ca0c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Integrate.java
@@ -67,7 +67,8 @@ import org.apache.tools.ant.BuildException;
* although P4Integrate can open files to the default change,
* P4Submit cannot yet submit to it.
* Example Usage:<br>
- * &lt;p4integrate change="${p4.change}" fromfile="//depot/project/dev/foo.txt" tofile="//depot/project/main/foo.txt" /&gt;
+ * &lt;p4integrate change="${p4.change}"
+ * fromfile="//depot/project/dev/foo.txt" tofile="//depot/project/main/foo.txt" /&gt;
*
* @author <A HREF="mailto:levylambert@tiscali-dsl.de">Antoine Levy-Lambert</A>
*
@@ -279,15 +280,18 @@ public class P4Integrate extends P4Base {
/**
* sets flag indicating if one wants to propagate the source file type
*
- * @param propagatesourcefiletype set it to true if you want to change the type of existing target files according to type of source file.
+ * @param propagatesourcefiletype
+ * set it to true if you want to change the type of existing target files
+ * according to type of source file.
*/
public void setPropagatesourcefiletype(boolean propagatesourcefiletype) {
this.propagatesourcefiletype = propagatesourcefiletype;
}
/**
- * returns flag indicating if one wants to suppress the copying on the local hard disk of new target files
+ * indicates intention to suppress the copying on the local hard disk of new target files.
*
- * @return flag indicating if one wants to suppress the copying on the local hard disk of new target files
+ * @return indicates intention to suppress the copying
+ * on the local hard disk of new target files.
*/
public boolean isNocopynewtargetfiles() {
return nocopynewtargetfiles;
@@ -296,7 +300,8 @@ public class P4Integrate extends P4Base {
/**
* sets nocopynewtargetfiles flag
*
- * @param nocopynewtargetfiles set it to true to gain speed in integration by not copying on the local Perforce client new target files
+ * @param nocopynewtargetfiles set it to true to gain speed in integration by not copying on
+ * the local Perforce client new target files
*/
public void setNocopynewtargetfiles(boolean nocopynewtargetfiles) {
this.nocopynewtargetfiles = nocopynewtargetfiles;
@@ -304,6 +309,7 @@ public class P4Integrate extends P4Base {
/**
* execute the p4 integrate
+ * @throws BuildException if there are missing parameters
*/
public void execute() throws BuildException {
if (change != null) {
@@ -315,39 +321,34 @@ public class P4Integrate extends P4Base {
if (this.restoredeletedrevisions) {
P4CmdOpts = P4CmdOpts + " -d";
}
- if ( this.leavetargetrevision) {
+ if (this.leavetargetrevision) {
P4CmdOpts = P4CmdOpts + " -h";
}
- if ( this.enablebaselessmerges ) {
+ if (this.enablebaselessmerges) {
P4CmdOpts = P4CmdOpts + " -i";
}
- if (this.simulationmode ) {
+ if (this.simulationmode) {
P4CmdOpts = P4CmdOpts + " -n";
}
- if ( this.reversebranchmappings ) {
+ if (this.reversebranchmappings) {
P4CmdOpts = P4CmdOpts + " -r";
}
- if ( this.propagatesourcefiletype ) {
+ if (this.propagatesourcefiletype) {
P4CmdOpts = P4CmdOpts + " -t";
}
- if ( this.nocopynewtargetfiles ) {
+ if (this.nocopynewtargetfiles) {
P4CmdOpts = P4CmdOpts + "-v";
}
String command;
if (branch == null && fromfile != null && tofile != null) {
command = P4CmdOpts + " " + fromfile + " " + tofile;
-
- }
- else if ( branch != null && fromfile == null && tofile != null )
- {
+ } else if (branch != null && fromfile == null && tofile != null) {
command = P4CmdOpts + " -b " + branch + " " + tofile;
- }
- else if ( branch != null && fromfile != null )
- {
- command = P4CmdOpts + " -b " + branch + " -s "+ fromfile + " " + tofile;
- }
- else {
- throw new BuildException("you need to specify fromfile and tofile, or branch and tofile, or branch and fromfile, or branch and fromfile and tofile ");
+ } else if (branch != null && fromfile != null) {
+ command = P4CmdOpts + " -b " + branch + " -s " + fromfile + " " + tofile;
+ } else {
+ throw new BuildException("you need to specify fromfile and tofile, "
+ + "or branch and tofile, or branch and fromfile, or branch and fromfile and tofile ");
}
execP4Command("-s integrate " + command, new SimpleP4OutputHandler(this));
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java
index 9d4d90277..3ac6ffc4c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Label.java
@@ -88,6 +88,7 @@ public class P4Label extends P4Base {
/**
* The name of the label; optional, default "AntLabel"
+ * @param name the name of the label
*/
public void setName(String name) {
this.name = name;
@@ -95,6 +96,7 @@ public class P4Label extends P4Base {
/**
*Label Description; optional
+ * @param desc description of the label
*/
public void setDesc(String desc) {
this.desc = desc;
@@ -102,13 +104,15 @@ public class P4Label extends P4Base {
/**
* when set to "locked", Perforce will lock the label once created; optional.
+ * @param lock only admissible value "locked"
*/
public void setLock(String lock) {
this.lock = lock;
}
/**
- * do the work
+ * do the work
+ * @throws BuildException if failonerror has been set to true and Perforce fails
*/
public void execute() throws BuildException {
log("P4Label exec:", Project.MSG_INFO);
@@ -142,10 +146,10 @@ public class P4Label extends P4Base {
//We have to create a unlocked label first
String newLabel =
- "Label: " + name +
- "\nDescription: " + desc +
- "\nOptions: unlocked" +
- "\nView: \n\t" + P4View;
+ "Label: " + name
+ + "\nDescription: " + desc
+ + "\nOptions: unlocked"
+ + "\nView: \n\t" + P4View;
P4Handler handler = new P4HandlerAdapter() {
public void process(String line) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java
index 1ab8ce2cf..465527d89 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Labelsync.java
@@ -70,7 +70,8 @@ import org.apache.tools.ant.util.StringUtils;
*
* Example Usage:
* <pre>
- * &lt;p4labelsync name="MyLabel-${TSTAMP}-${DSTAMP}" view="//depot/...#head;//depot2/file1#25" /&gt;
+ * &lt;p4labelsync name="MyLabel-${TSTAMP}-${DSTAMP}"
+ * view="//depot/...#head;//depot2/file1#25" /&gt;
* </pre>
*
* @author <A HREF="mailto:levylambert@tiscali-dsl.de">Antoine Levy-Lambert</A>
@@ -84,7 +85,8 @@ public class P4Labelsync extends P4Base {
private boolean delete; /* -n */
private boolean simulationmode; /* -n */
/**
- * -a flag of p4 labelsync - preserve files which exist in the label, but not in the current view
+ * -a flag of p4 labelsync - preserve files which exist in the label,
+ * but not in the current view
* @return add attribute
* if set to true the task will not remove any files from the label
* only add files which were not there previously or update these where the revision has changed
@@ -94,7 +96,8 @@ public class P4Labelsync extends P4Base {
return add;
}
/**
- * -a flag of p4 labelsync - preserve files which exist in the label, but not in the current view
+ * -a flag of p4 labelsync - preserve files which exist in the label,
+ * but not in the current view
* @param add if set to true the task will not remove any files from the label
* only add files which were not there previously or update these where the revision has changed
* the add attribute is the -a flag of p4 labelsync
@@ -103,7 +106,8 @@ public class P4Labelsync extends P4Base {
this.add = add;
}
/**
- * -d flag of p4 labelsync; indicates an intention of deleting from the label the files specified in the view
+ * -d flag of p4 labelsync; indicates an intention of deleting from the label
+ * the files specified in the view
* @return delete attribute
*/
public boolean isDelete() {
@@ -111,8 +115,10 @@ public class P4Labelsync extends P4Base {
}
/**
- * -d flag of p4 labelsync; indicates an intention of deleting from the label the files specified in the view
- * @param delete
+ * -d flag of p4 labelsync; indicates an intention of deleting from the label
+ * the files specified in the view
+ * @param delete indicates intention of deleting from the label
+ * the files specified in the view
*/
public void setDelete(boolean delete) {
this.delete = delete;
@@ -121,6 +127,7 @@ public class P4Labelsync extends P4Base {
/**
* The name of the label; optional, default "AntLabel"
+ * @param name of the label
*/
public void setName(String name) {
this.name = name;
@@ -134,7 +141,7 @@ public class P4Labelsync extends P4Base {
}
/**
* -n flag of p4 labelsync - display changes without actually doing them
- * @param simulationmode
+ * @param simulationmode display changes without actually doing them
*/
public void setSimulationmode(boolean simulationmode) {
this.simulationmode = simulationmode;
@@ -143,6 +150,7 @@ public class P4Labelsync extends P4Base {
/**
* do the work
+ * @throws BuildException if the label name is not supplied
*/
public void execute() throws BuildException {
log("P4Labelsync exec:", Project.MSG_INFO);
@@ -152,24 +160,25 @@ public class P4Labelsync extends P4Base {
P4View = StringUtils.replace(P4View, ";", "\n\t");
}
if (P4View == null) {
- P4View="";
+ P4View = "";
}
if (name == null || name.length() < 1) {
throw new BuildException("name attribute is compulsory for labelsync");
}
- if ( this.isSimulationmode() ) {
+ if (this.isSimulationmode()) {
P4CmdOpts = P4CmdOpts + " -n";
}
- if ( this.isDelete() ) {
+ if (this.isDelete()) {
P4CmdOpts = P4CmdOpts + " -d";
}
- if ( this.isAdd() ) {
+ if (this.isAdd()) {
P4CmdOpts = P4CmdOpts + " -a";
}
- execP4Command("-s labelsync -l "+name +" "+ P4CmdOpts + " " + P4View, new SimpleP4OutputHandler(this));
+ execP4Command("-s labelsync -l " + name + " " + P4CmdOpts + " " + P4View,
+ new SimpleP4OutputHandler(this));
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java
index e3e5c1911..7e7584343 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputHandler.java
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2000 The Apache Software Foundation. All rights
+ * Copyright (c) 2000-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,6 +62,10 @@ import org.apache.tools.ant.BuildException;
* @author <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
*/
public interface P4OutputHandler {
-
- public void process(String line) throws BuildException;
+ /**
+ * implementations will be able to process lines of output from Perforce
+ * @param line a line of stdout or stderr coming from Perforce
+ * @throws BuildException implementations are allowed to throw BuildException
+ */
+ void process(String line) throws BuildException;
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java
index 4ec60b677..c30184671 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4OutputStream.java
@@ -70,7 +70,7 @@ public class P4OutputStream extends OutputStream {
/**
* creates a new P4OutputStream for a P4Handler
- * @param handler
+ * @param handler the handler which will process the streams
*/
public P4OutputStream(P4Handler handler) {
this.handler = handler;
@@ -81,6 +81,9 @@ public class P4OutputStream extends OutputStream {
* separator is detected.
*
* @param cc data to log (byte).
+ * @throws IOException IOException if an I/O error occurs. In particular,
+ * an <code>IOException</code> may be thrown if the
+ * output stream has been closed.
*/
public void write(int cc) throws IOException {
final byte c = (byte) cc;
@@ -105,6 +108,7 @@ public class P4OutputStream extends OutputStream {
/**
* Writes all remaining
+ * @throws IOException if an I/O error occurs.
*/
public void close() throws IOException {
if (buffer.size() > 0) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java
index 725d5afdc..b8cdb159a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Reopen.java
@@ -74,6 +74,8 @@ public class P4Reopen extends P4Base {
/**
* The changelist to move files to; required.
+ * @param toChange new change list number
+ * @throws BuildException if the change parameter is null or empty
*/
public void setToChange(String toChange) throws BuildException {
if (toChange == null && !toChange.equals("")) {
@@ -83,6 +85,10 @@ public class P4Reopen extends P4Base {
this.toChange = toChange;
}
+ /**
+ * do the work
+ * @throws BuildException if P4View is null
+ */
public void execute() throws BuildException {
if (P4View == null) {
throw new BuildException("No view specified to reopen");
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java
index 65a76dda8..23f2d8a5b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Resolve.java
@@ -63,6 +63,7 @@ import org.apache.tools.ant.BuildException;
/**
* @ant.task category="scm"
+ * @author <a href="mailto:antoine@antbuild.com">Antoine Levy-Lambert</a>
*/
public class P4Resolve extends P4Base {
private String resolvemode = null;
@@ -77,14 +78,17 @@ public class P4Resolve extends P4Base {
private static final String SAFE = "safe";
private static final String THEIRS = "theirs";
private static final String YOURS = "yours";
- private static final String[] resolvemodes = {
+ private static final String[] RESOLVE_MODES = {
AUTOMATIC,
FORCE,
SAFE,
THEIRS,
YOURS
};
-
+ /**
+ * returns the resolve mode
+ * @return returns the resolve mode
+ */
public String getResolvemode() {
return resolvemode;
}
@@ -97,90 +101,122 @@ public class P4Resolve extends P4Base {
* <li> theirs -at </li>
* <li> yours -ay </li>
* </ul>
+ * @param resolvemode one of automatic, force, safe, theirs, yours
*/
public void setResolvemode(String resolvemode) {
- boolean found=false;
- for (int counter=0; counter < resolvemodes.length; counter++)
- {
- if (resolvemode.equals(resolvemodes[counter])) {
- found=true;
+ boolean found = false;
+ for (int counter = 0; counter < RESOLVE_MODES.length; counter++) {
+ if (resolvemode.equals(RESOLVE_MODES[counter])) {
+ found = true;
break;
}
}
- if (found==false) {
+ if (found == false) {
throw new BuildException("Unacceptable value for resolve mode");
}
this.resolvemode = resolvemode;
}
+ /**
+ * allows previously resolved files to be resolved again
+ * @return flag indicating whether one wants to
+ * allow previously resolved files to be resolved again
+ */
public boolean isRedoall() {
return redoall;
}
+ /**
+ * set the redoall flag
+ * @param redoall flag indicating whether one want to
+ * allow previously resolved files to be resolved again
+ */
public void setRedoall(boolean redoall) {
this.redoall = redoall;
}
+ /**
+ * read the simulation mode flag
+ * @return flag indicating whether one wants just to simulate
+ * the p4 resolve operation whithout actually doing it
+ */
public boolean isSimulationmode() {
return simulationmode;
}
+ /**
+ * sets a flag
+ * @param simulationmode set to true, lists the integrations which would be performed,
+ * without actually doing them.
+ */
public void setSimulationmode(boolean simulationmode) {
this.simulationmode = simulationmode;
}
+ /**
+ * If set to true, attempts a textual merge, even for binary files
+ * @return flag value
+ */
public boolean isForcetextmode() {
return forcetextmode;
}
+ /**
+ * If set to true, attempts a textual merge, even for binary files
+ * @param forcetextmode set the flag value
+ */
public void setForcetextmode(boolean forcetextmode) {
this.forcetextmode = forcetextmode;
}
+ /**
+ * If set to true, puts in markers for all changes, conflicting or not
+ * @return flag markersforall value
+ */
public boolean isMarkersforall() {
return markersforall;
}
+ /**
+ * If set to true, puts in markers for all changes, conflicting or not
+ * @param markersforall flag true or false
+ */
public void setMarkersforall(boolean markersforall) {
this.markersforall = markersforall;
}
/**
* execute the p4 resolve
+ * @throws BuildException if there is a wrong resolve mode specified
+ * or no view specified
*/
public void execute() throws BuildException {
if (this.resolvemode.equals(AUTOMATIC)) {
P4CmdOpts = P4CmdOpts + " -am";
- }
- else if (this.resolvemode.equals(FORCE)) {
+ } else if (this.resolvemode.equals(FORCE)) {
P4CmdOpts = P4CmdOpts + " -af";
- }
- else if (this.resolvemode.equals(SAFE)) {
+ } else if (this.resolvemode.equals(SAFE)) {
P4CmdOpts = P4CmdOpts + " -as";
- }
- else if (this.resolvemode.equals(THEIRS)) {
+ } else if (this.resolvemode.equals(THEIRS)) {
P4CmdOpts = P4CmdOpts + " -at";
- }
- else if (this.resolvemode.equals(YOURS)) {
+ } else if (this.resolvemode.equals(YOURS)) {
P4CmdOpts = P4CmdOpts + " -ay";
- }
- else
- {
+ } else {
throw new BuildException("unsupported or absent resolve mode");
}
- if (P4View==null) {
+ if (P4View == null) {
throw new BuildException("please specify a view");
}
- if ( this.isRedoall() ) {
+ if (this.isRedoall()) {
P4CmdOpts = P4CmdOpts + " -f";
}
- if ( this.isSimulationmode() ) {
+ if (this.isSimulationmode()) {
P4CmdOpts = P4CmdOpts + " -n";
}
- if ( this.isForcetextmode() ) {
+ if (this.isForcetextmode()) {
P4CmdOpts = P4CmdOpts + " -t";
}
- if ( this.isMarkersforall() ) {
+ if (this.isMarkersforall()) {
P4CmdOpts = P4CmdOpts + " -v";
}
execP4Command("-s resolve " + P4CmdOpts + " " + P4View, new SimpleP4OutputHandler(this));
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java
index 1668b5b67..31397cd90 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Revert.java
@@ -75,6 +75,8 @@ public class P4Revert extends P4Base {
/**
* The changelist to revert; optional.
+ * @param revertChange : the change list to revert
+ * @throws BuildException if the change list is null or empty string
*/
public void setChange(String revertChange) throws BuildException {
if (revertChange == null && !revertChange.equals("")) {
@@ -87,11 +89,17 @@ public class P4Revert extends P4Base {
/**
* flag to revert only unchanged files (p4 revert -a); optional, default false.
+ * @param onlyUnchanged if set to true revert only unchanged files
*/
public void setRevertOnlyUnchanged(boolean onlyUnchanged) {
this.onlyUnchanged = onlyUnchanged;
}
+ /**
+ * do the work
+ * @throws BuildException if an error occurs during the execution of the Perforce command
+ * and failonError is set to true
+ */
public void execute() throws BuildException {
/* Here we can either revert any unchanged files in a changelist
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
index 1584e4d7f..69edd3def 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
@@ -79,15 +79,23 @@ import java.util.Vector;
public class P4Submit extends P4Base {
//ToDo: If dealing with default cl need to parse out <enter description here>
+ /**
+ * change list number
+ */
public String change;
/**
+ * set the change list number to submit
* @param change The changelist number to submit; required.
*/
public void setChange(String change) {
this.change = change;
}
+ /**
+ * do the work
+ * @throws BuildException if no change list specified
+ */
public void execute() throws BuildException {
if (change != null) {
execP4Command("submit -c " + change, (P4HandlerAdapter) new P4SubmitAdapter());
@@ -98,10 +106,17 @@ public class P4Submit extends P4Base {
}
}
+ /**
+ * internal class used to process the output of p4 submit
+ */
public class P4SubmitAdapter extends P4HandlerAdapter {
+ /**
+ * process a line of stdout/stderr coming from Perforce
+ * @param line line of stdout or stderr coming from Perforce
+ */
public void process(String line) {
log(line, Project.MSG_VERBOSE);
- getProject().setProperty("p4.needsresolve","0");
+ getProject().setProperty("p4.needsresolve", "0");
// this type of output might happen
// Change 18 renamed change 20 and submitted.
if (util.match("/renamed/", line)) {
@@ -111,12 +126,13 @@ public class P4Submit extends P4Base {
boolean found = false;
for (int counter = 0; counter < myarray.size(); counter++) {
if (found == true) {
- int changenumber = Integer.parseInt((String) myarray.elementAt(counter + 1));
+ String chnum = (String) myarray.elementAt(counter + 1);
+ int changenumber = Integer.parseInt(chnum);
log("Perforce change renamed " + changenumber, Project.MSG_INFO);
getProject().setProperty("p4.change", "" + changenumber);
found = false;
}
- if (((String) (myarray.elementAt(counter))).equals("renamed")) {
+ if (((myarray.elementAt(counter))).equals("renamed")) {
found = true;
}
}
@@ -128,8 +144,8 @@ public class P4Submit extends P4Base {
throw new BuildException(msg, e, getLocation());
}
}
- if (util.match("/p4 submit -c/",line)) {
- getProject().setProperty("p4.needsresolve","1");
+ if (util.match("/p4 submit -c/", line)) {
+ getProject().setProperty("p4.needsresolve", "1");
}
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java
index d220c58d5..fd5f72b76 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Sync.java
@@ -70,9 +70,13 @@ import org.apache.tools.ant.Project;
* <b>Example Usage:</b>
* <table border="1">
* <th>Function</th><th>Command</th>
- * <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings specified</td><td>&lt;P4Sync <br>P4view="//projects/foo/main/source/..." <br>P4User="fbloggs" <br>P4Port="km01:1666" <br>P4Client="fbloggsclient" /&gt;</td></tr>
- * <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings defined in environment</td><td>&lt;P4Sync P4view="//projects/foo/main/source/..." /&gt;</td></tr>
- * <tr><td>Force a re-sync to head, refreshing all files</td><td>&lt;P4Sync force="yes" P4view="//projects/foo/main/source/..." /&gt;</td></tr>
+ * <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings specified</td>
+ * <td>&lt;P4Sync <br>P4view="//projects/foo/main/source/..." <br>
+ * P4User="fbloggs" <br>P4Port="km01:1666" <br>P4Client="fbloggsclient" /&gt;</td></tr>
+ * <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings defined in environment</td>
+ * <td>&lt;P4Sync P4view="//projects/foo/main/source/..." /&gt;</td></tr>
+ * <tr><td>Force a re-sync to head, refreshing all files</td>
+ * <td>&lt;P4Sync force="yes" P4view="//projects/foo/main/source/..." /&gt;</td></tr>
* <tr><td>Sync to a label</td><td>&lt;P4Sync label="myPerforceLabel" /&gt;</td></tr>
* </table>
*
@@ -89,6 +93,8 @@ public class P4Sync extends P4Base {
/**
* Label to sync client to; optional.
+ * @param label name of a label against which one want to sync
+ * @throws BuildException if label is null or empty string
*/
public void setLabel(String label) throws BuildException {
if (label == null && !label.equals("")) {
@@ -102,6 +108,8 @@ public class P4Sync extends P4Base {
/**
* force a refresh of files, if this attribute is set; false by default.
+ * @param force sync all files, whether they are supposed to be already uptodate or not.
+ * @throws BuildException if a label is set and force is null
*/
public void setForce(String force) throws BuildException {
if (force == null && !label.equals("")) {
@@ -110,6 +118,11 @@ public class P4Sync extends P4Base {
P4CmdOpts = "-f";
}
+ /**
+ * do the work
+ * @throws BuildException if an error occurs during the execution of the Perforce command
+ * and failOnError is set to true
+ */
public void execute() throws BuildException {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java
index 8a51c6815..d8713f221 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/SimpleP4OutputHandler.java
@@ -62,14 +62,28 @@ package org.apache.tools.ant.taskdefs.optional.perforce;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
+/**
+ * simple implementation of P4HandlerAdapter used by tasks which are not
+ * actually processing the output from Perforce
+ * @author <A HREF="mailto:leslie.hughes@rubus.com">Les Hughes</A>
+ */
public class SimpleP4OutputHandler extends P4HandlerAdapter {
P4Base parent;
+ /**
+ * simple constructor
+ * @param parent a P4Base instance
+ */
public SimpleP4OutputHandler(P4Base parent) {
this.parent = parent;
}
+ /**
+ * process one line of stderr/stdout
+ * @param line line of output
+ * @throws BuildException if errror output is received
+ */
public void process(String line) throws BuildException {
if (parent.util.match("/^exit/", line)) {
return;
@@ -88,7 +102,8 @@ public class SimpleP4OutputHandler extends P4HandlerAdapter {
//looking like this one :
//error: //depot/file2 - label in sync.
- if (parent.util.match("/error:/", line) && !parent.util.match("/up-to-date/", line) && !parent.util.match("/label in sync/", line)) {
+ if (parent.util.match("/error:/", line) && !parent.util.match("/up-to-date/", line)
+ && !parent.util.match("/label in sync/", line)) {
throw new BuildException(line);
}