KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfree > base > BootableProjectInfo


1 /* ========================================================================
2  * JCommon : a free general purpose class library for the Java(tm) platform
3  * ========================================================================
4  *
5  * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
6  *
7  * Project Info: http://www.jfree.org/jcommon/index.html
8  *
9  * This library is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  * License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22  * USA.
23  *
24  * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25  * in the United States and other countries.]
26  *
27  * ------------------------
28  * BootableProjectInfo.java
29  * ------------------------
30  * (C)opyright 2004, by Thomas Morgner and Contributors.
31  *
32  * Original Author: Thomas Morgner;
33  * Contributor(s): David Gilbert (for Object Refinery Limited);
34  *
35  * $Id: BootableProjectInfo.java,v 1.4 2006/03/23 19:47:05 taqua Exp $
36  *
37  * Changes
38  * -------
39  * 07-Jun-2004 : Added source headers (DG);
40  *
41  */

42
43 package org.jfree.base;
44
45 import java.util.ArrayList JavaDoc;
46
47 /**
48  * Project info for a bootable project. A bootable project provides a controlled
49  * way of initalizing all subsystems by providing a Boot loader implementation.
50  *
51  * @author Thomas Morgner
52  */

53 public class BootableProjectInfo extends BasicProjectInfo {
54
55     /** The boot class. */
56     private String JavaDoc bootClass;
57
58     /** The auto-boot flag. */
59     private boolean autoBoot;
60
61     /**
62      * Creates a new instance.
63      */

64     public BootableProjectInfo() {
65         this.autoBoot = true;
66     }
67
68     /**
69      * Creates a new library reference.
70      *
71      * @param name the name.
72      * @param version the version.
73      * @param licence the licence.
74      * @param info the web address or other info.
75      */

76     public BootableProjectInfo(final String JavaDoc name, final String JavaDoc version,
77                                final String JavaDoc licence, final String JavaDoc info) {
78         this();
79         setName(name);
80         setVersion(version);
81         setLicenceName(licence);
82         setInfo(info);
83     }
84
85     /**
86      * Creates a new library reference.
87      *
88      * @param name the name.
89      * @param version the version.
90      * @param info the info (for example, the project URL).
91      * @param copyright the copyright statement.
92      * @param licenceName the license name.
93      */

94     public BootableProjectInfo(final String JavaDoc name, final String JavaDoc version, final String JavaDoc info,
95                                final String JavaDoc copyright, final String JavaDoc licenceName) {
96         this();
97         setName(name);
98         setVersion(version);
99         setLicenceName(licenceName);
100         setInfo(info);
101         setCopyright(copyright);
102     }
103
104     /**
105      * Returns the dependencies.
106      *
107      * @return The dependencies.
108      */

109     public BootableProjectInfo[] getDependencies() {
110         final ArrayList JavaDoc dependencies = new ArrayList JavaDoc();
111         final Library[] libraries = getLibraries();
112         for (int i = 0; i < libraries.length; i++) {
113           Library lib = libraries[i];
114           if (lib instanceof BootableProjectInfo) {
115               dependencies.add(lib);
116           }
117         }
118
119         final Library[] optionalLibraries = getOptionalLibraries();
120         for (int i = 0; i < optionalLibraries.length; i++) {
121           Library lib = optionalLibraries[i];
122           if (lib instanceof BootableProjectInfo) {
123               dependencies.add(lib);
124           }
125         }
126         return (BootableProjectInfo[]) dependencies.toArray
127             (new BootableProjectInfo[dependencies.size()]);
128     }
129
130     /**
131      * Adds a dependency.
132      *
133      * @param projectInfo the project.
134      * @deprecated use 'addLibrary' instead.
135      */

136     public void addDependency(final BootableProjectInfo projectInfo) {
137         if (projectInfo == null) {
138             throw new NullPointerException JavaDoc();
139         }
140         addLibrary(projectInfo);
141     }
142
143     /**
144      * Returns the name of the boot class.
145      *
146      * @return The name of the boot class.
147      */

148     public String JavaDoc getBootClass() {
149         return this.bootClass;
150     }
151
152     /**
153      * Sets the boot class name.
154      *
155      * @param bootClass the boot class name.
156      */

157     public void setBootClass(final String JavaDoc bootClass) {
158         this.bootClass = bootClass;
159     }
160
161     /**
162      * Returns, whether the project should be booted automaticly.
163      *
164      * @return The auto-boot flag.
165      */

166     public boolean isAutoBoot() {
167         return this.autoBoot;
168     }
169
170     /**
171      * Sets the auto boot flag.
172      *
173      * @param autoBoot true, if the project should be booted automaticly, false otherwise.
174      */

175     public void setAutoBoot(final boolean autoBoot) {
176         this.autoBoot = autoBoot;
177     }
178
179 }
180
Popular Tags