KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tools > ant > taskdefs > optional > sos > SOSCheckin


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */

18 package org.apache.tools.ant.taskdefs.optional.sos;
19
20 import org.apache.tools.ant.types.Commandline;
21
22 /**
23  * Commits and unlocks files in Visual SourceSafe via a SourceOffSite server.
24  *
25  * @ant.task name="soscheckin" category="scm"
26  */

27 public class SOSCheckin extends SOS {
28
29     /**
30      * The filename to act upon.
31      * If no file is specified then the task
32      * acts upon the project.
33      *
34      * @param filename The new file value
35      */

36     public final void setFile(String JavaDoc filename) {
37         super.setInternalFilename(filename);
38     }
39
40     /**
41      * Flag to recursively apply the action. Defaults to false.
42      *
43      * @param recursive True for recursive operation.
44      */

45     public void setRecursive(boolean recursive) {
46         super.setInternalRecursive(recursive);
47     }
48
49     /**
50      * The comment to apply to all files being labelled.
51      *
52      * @param comment The new comment value
53      */

54     public void setComment(String JavaDoc comment) {
55         super.setInternalComment(comment);
56     }
57
58     /**
59      * Build the command line. <p>
60      *
61      * CheckInFile required parameters: -server -name -password -database -project
62      * -file<br>
63      * CheckInFile optional parameters: -workdir -log -verbose -nocache -nocompression
64      * -soshome<br>
65      * CheckInProject required parameters: -server -name -password -database
66      * -project<br>
67      * CheckInProject optional parameters: workdir -recursive -log -verbose
68      * -nocache -nocompression -soshome<br>
69      *
70      * @return Commandline the generated command to be executed
71      */

72     protected Commandline buildCmdLine() {
73         commandLine = new Commandline();
74
75         // If we find a "file" attribute then act on a file otherwise act on a project
76
if (getFilename() != null) {
77             // add -command CheckInFile to the commandline
78
commandLine.createArgument().setValue(SOSCmd.FLAG_COMMAND);
79             commandLine.createArgument().setValue(SOSCmd.COMMAND_CHECKIN_FILE);
80             // add -file xxxxx to the commandline
81
commandLine.createArgument().setValue(SOSCmd.FLAG_FILE);
82             commandLine.createArgument().setValue(getFilename());
83         } else {
84             // add -command CheckInProject to the commandline
85
commandLine.createArgument().setValue(SOSCmd.FLAG_COMMAND);
86             commandLine.createArgument().setValue(SOSCmd.COMMAND_CHECKIN_PROJECT);
87             // look for a recursive option
88
commandLine.createArgument().setValue(getRecursive());
89         }
90
91         getRequiredAttributes();
92         getOptionalAttributes();
93
94         // Look for a comment
95
if (getComment() != null) {
96             commandLine.createArgument().setValue(SOSCmd.FLAG_COMMENT);
97             commandLine.createArgument().setValue(getComment());
98         }
99         return commandLine;
100     }
101 }
102
Popular Tags