KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tools > ant > taskdefs > optional > ide > VAJAntTool


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

17
18 package org.apache.tools.ant.taskdefs.optional.ide;
19
20
21 import com.ibm.ivj.util.base.Project;
22 import com.ibm.ivj.util.base.ToolData;
23 import org.apache.tools.ant.BuildException;
24
25
26 /**
27  * This class is the equivalent to org.apache.tools.ant.Main for the
28  * VAJ tool environment. It's main is called when the user selects
29  * Tools->Ant Build from the VAJ project menu.
30  * Additionally this class provides methods to save build info for
31  * a project in the repository and load it from the repository
32  *
33  */

34 public class VAJAntTool {
35     private static final String JavaDoc TOOL_DATA_KEY = "AntTool";
36
37
38     /**
39      * Loads the BuildInfo for the specified VAJ project from the
40      * tool data for this project.
41      * If there is no build info stored for that project, a new
42      * default BuildInfo is returned
43      *
44      * @return BuildInfo buildInfo build info for the specified project
45      * @param projectName String project name
46      */

47     public static VAJBuildInfo loadBuildData(String JavaDoc projectName) {
48         VAJBuildInfo result = null;
49         try {
50             Project project =
51                 VAJLocalUtil.getWorkspace().loadedProjectNamed(projectName);
52             if (project.testToolRepositoryData(TOOL_DATA_KEY)) {
53                 ToolData td = project.getToolRepositoryData(TOOL_DATA_KEY);
54                 String JavaDoc data = (String JavaDoc) td.getData();
55                 result = VAJBuildInfo.parse(data);
56             } else {
57                 result = new VAJBuildInfo();
58             }
59             result.setVAJProjectName(projectName);
60         } catch (Throwable JavaDoc t) {
61             throw new BuildException("BuildInfo for Project "
62                                      + projectName + " could not be loaded" + t);
63         }
64         return result;
65     }
66
67
68     /**
69      * Starts the application.
70      *
71      * @param args an array of command-line arguments. VAJ puts the
72      * VAJ project name into args[1] when starting the
73      * tool from the project context menu
74      */

75     public static void main(java.lang.String JavaDoc[] args) {
76         try {
77             VAJBuildInfo info;
78             if (args.length >= 2 && args[1] instanceof String JavaDoc) {
79                 String JavaDoc projectName = (String JavaDoc) args[1];
80                 info = loadBuildData(projectName);
81             } else {
82                 info = new VAJBuildInfo();
83             }
84
85             VAJAntToolGUI mainFrame = new VAJAntToolGUI(info);
86             mainFrame.show();
87         } catch (Throwable JavaDoc t) {
88             // if all error handling fails, output at least
89
// something on the console
90
t.printStackTrace();
91         }
92     }
93
94
95     /**
96      * Saves the BuildInfo for a project in the VAJ repository.
97      *
98      * @param info BuildInfo build info to save
99      */

100     public static void saveBuildData(VAJBuildInfo info) {
101         String JavaDoc data = info.asDataString();
102         try {
103             ToolData td = new ToolData(TOOL_DATA_KEY, data);
104             VAJLocalUtil.getWorkspace().loadedProjectNamed(
105                 info.getVAJProjectName()).setToolRepositoryData(td);
106         } catch (Throwable JavaDoc t) {
107             throw new BuildException("BuildInfo for Project "
108                                      + info.getVAJProjectName() + " could not be saved", t);
109         }
110     }
111 }
112
Popular Tags