diff options
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.java | 199 |
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}; + } + } +} |