aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSHISTORY.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSHISTORY.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSHISTORY.java199
1 files changed, 199 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSHISTORY.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSHISTORY.java
new file mode 100644
index 00000000..05ec91c2
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSSHISTORY.java
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.tools.ant.taskdefs.optional.vss;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.types.Commandline;
+import org.apache.tools.ant.types.EnumeratedAttribute;
+
+/**
+ * Performs History commands to Microsoft Visual SourceSafe.
+ *
+ * @ant.task name="vsshistory" category="scm"
+ */
+public class MSVSSHISTORY extends MSVSS {
+
+ /**
+ * Builds a command line to execute ss.
+ * @return The constructed commandline.
+ */
+ Commandline buildCmdLine() {
+ Commandline commandLine = new Commandline();
+
+ // first off, make sure that we've got a command and a vssdir and a label ...
+ if (getVsspath() == null) {
+ String msg = "vsspath attribute must be set!";
+ throw new BuildException(msg, getLocation());
+ }
+
+ // build the command line from what we got the format is
+ // ss History elements [-H] [-L] [-N] [-O] [-V] [-Y] [-#] [-?]
+ // as specified in the SS.EXE help
+ commandLine.setExecutable(getSSCommand());
+ commandLine.createArgument().setValue(COMMAND_HISTORY);
+
+ // VSS items
+ commandLine.createArgument().setValue(getVsspath());
+ // -I-
+ commandLine.createArgument().setValue(FLAG_AUTORESPONSE_DEF); // ignore all errors
+ // -Vd
+ commandLine.createArgument().setValue(getVersionDate());
+ // -VL
+ commandLine.createArgument().setValue(getVersionLabel());
+ // -R
+ commandLine.createArgument().setValue(getRecursive());
+ // -B / -D / -F-
+ commandLine.createArgument().setValue(getStyle());
+ // -Y
+ commandLine.createArgument().setValue(getLogin());
+ // -O
+ commandLine.createArgument().setValue(getOutput());
+
+ return commandLine;
+ }
+
+ /**
+ * Retrieve history recursively. Defaults to false.
+ *
+ * @param recursive The boolean value for recursive.
+ */
+ public void setRecursive(boolean recursive) {
+ super.setInternalRecursive(recursive);
+ }
+
+ /**
+ * Name of the user whose change history is generated.
+ *
+ * @param user The username.
+ */
+ public void setUser(String user) {
+ super.setInternalUser(user);
+ }
+
+ /**
+ * Date representing the 'start' of the range.
+ *
+ * @param fromDate The start date.
+ */
+ public void setFromDate(String fromDate) {
+ super.setInternalFromDate(fromDate);
+ }
+
+ /**
+ * Date representing the 'end' of the range.
+ *
+ * @param toDate The end date.
+ */
+ public void setToDate(String toDate) {
+ super.setInternalToDate(toDate);
+ }
+
+ /**
+ * Label representing the 'start' of the range.
+ *
+ * @param fromLabel The start label.
+ */
+ public void setFromLabel(String fromLabel) {
+ super.setInternalFromLabel(fromLabel);
+ }
+
+ /**
+ * Label representing the 'end' of the range.
+ *
+ * @param toLabel The end label.
+ */
+ public void setToLabel(String toLabel) {
+ super.setInternalToLabel(toLabel);
+ }
+
+ /**
+ * Number of days for comparison.
+ * Defaults to 2 days.
+ *
+ * @param numd The number of days.
+ */
+ public void setNumdays(int numd) {
+ super.setInternalNumDays(numd);
+ }
+
+ /**
+ * Output file name for the history.
+ *
+ * @param outfile The output file name.
+ */
+ public void setOutput(File outfile) {
+ if (outfile != null) {
+ super.setInternalOutputFilename(outfile.getAbsolutePath());
+ }
+ }
+
+ /**
+ * Format of dates in <code>fromDate</code and <code>toDate</code>.
+ * Used when calculating dates with the numdays attribute.
+ * This string uses the formatting rules of <code>SimpleDateFormat</code>.
+ * Defaults to <code>DateFormat.SHORT</code>.
+ *
+ * @param dateFormat The date format.
+ */
+ public void setDateFormat(String dateFormat) {
+ super.setInternalDateFormat(new SimpleDateFormat(dateFormat));
+ }
+
+ /**
+ * Output style. Valid options are:
+ * <ul>
+ * <li>brief: -B Display a brief history.
+ * <li>codediff: -D Display line-by-line file changes.
+ * <li>nofile: -F- Do not display individual file updates in the project history.
+ * <li>default: No option specified. Display in Source Safe's default format.
+ * </ul>
+ *
+ * @param attr The history style:
+ */
+ public void setStyle(BriefCodediffNofile attr) {
+ String option = attr.getValue();
+ if (option.equals(STYLE_BRIEF)) {
+ super.setInternalStyle(FLAG_BRIEF);
+ } else if (option.equals(STYLE_CODEDIFF)) {
+ super.setInternalStyle(FLAG_CODEDIFF);
+ } else if (option.equals(STYLE_DEFAULT)) {
+ super.setInternalStyle("");
+ } else if (option.equals(STYLE_NOFILE)) {
+ super.setInternalStyle(FLAG_NO_FILE);
+ } else {
+ throw new BuildException("Style " + attr + " unknown.", getLocation());
+ }
+ }
+
+ /**
+ * Extension of EnumeratedAttribute to hold the values for style.
+ */
+ public static class BriefCodediffNofile extends EnumeratedAttribute {
+ /**
+ * Gets the list of allowable values.
+ * @return The values.
+ */
+ public String[] getValues() {
+ return new String[] {STYLE_BRIEF, STYLE_CODEDIFF, STYLE_NOFILE, STYLE_DEFAULT};
+ }
+ }
+}