001: /*--
002:
003: Copyright (C) 2002-2005 Adrian Price.
004: All rights reserved.
005:
006: Redistribution and use in source and binary forms, with or without
007: modification, are permitted provided that the following conditions
008: are met:
009:
010: 1. Redistributions of source code must retain the above copyright
011: notice, this list of conditions, and the following disclaimer.
012:
013: 2. Redistributions in binary form must reproduce the above copyright
014: notice, this list of conditions, and the disclaimer that follows
015: these conditions in the documentation and/or other materials
016: provided with the distribution.
017:
018: 3. The names "OBE" and "Open Business Engine" must not be used to
019: endorse or promote products derived from this software without prior
020: written permission. For written permission, please contact
021: adrianprice@sourceforge.net.
022:
023: 4. Products derived from this software may not be called "OBE" or
024: "Open Business Engine", nor may "OBE" or "Open Business Engine"
025: appear in their name, without prior written permission from
026: Adrian Price (adrianprice@users.sourceforge.net).
027:
028: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
029: WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
030: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
031: DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
032: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
033: (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
034: SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
035: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
036: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
037: IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
038: POSSIBILITY OF SUCH DAMAGE.
039:
040: For more information on OBE, please see
041: <http://obe.sourceforge.net/>.
042:
043: */
044:
045: package org.obe.client.api.repository;
046:
047: import org.obe.xpdl.model.data.ExternalReference;
048: import org.xml.sax.EntityResolver;
049:
050: import java.util.Arrays;
051:
052: /**
053: * Describes a ToolAgent that invokes the main method of a Java class.
054: *
055: * @author Adrian Price
056: */
057: public final class JavaApplicationMetaData extends JavaMethodMetaData {
058: private static final long serialVersionUID = 6746440879038462935L;
059: private static final String IMPL_CLASS = "org.obe.runtime.tool.JavaApplication";
060: private static final String[] IMPL_CTOR_SIG = { JavaApplicationMetaData.class
061: .getName() };
062: private static final String MAIN = "main";
063: private static final String[] MAIN_SIG = { "java.lang.String[]" };
064: private boolean _fork;
065: private String _href;
066:
067: public JavaApplicationMetaData() {
068: }
069:
070: public JavaApplicationMetaData(String id, String displayName,
071: String description, String docUrl, String author,
072: String className, boolean fork) {
073:
074: super (id, displayName, description, docUrl, author, className,
075: MAIN, MAIN_SIG);
076: _fork = fork;
077: }
078:
079: public ToolAgentMetaData introspect(ExternalReference extRef,
080: EntityResolver entityResolver) {
081:
082: // TODO: Move Class introspection code here.
083: return null;
084: }
085:
086: public String getMethod() {
087: return MAIN;
088: }
089:
090: public void setMethod(String method) {
091: throw new UnsupportedOperationException(
092: "method property is read-only");
093: }
094:
095: public String[] getMethodSig() {
096: return MAIN_SIG;
097: }
098:
099: public void setMethodSig(String[] methodSig) {
100: throw new UnsupportedOperationException(
101: "methodSig property is read-only");
102: }
103:
104: protected String getImplClass() {
105: return IMPL_CLASS;
106: }
107:
108: protected String[] getImplCtorSig() {
109: return IMPL_CTOR_SIG;
110: }
111:
112: public boolean isFork() {
113: return _fork;
114: }
115:
116: public boolean getFork() {
117: return _fork;
118: }
119:
120: public void setFork(boolean fork) {
121: _fork = fork;
122: }
123:
124: public String getHref() {
125: return _href != null ? _href : _type == null
126: || !allowInheritance ? null
127: : ((JavaApplicationMetaData) _type).getHref();
128: }
129:
130: public void setHref(String href) {
131: _href = href;
132: }
133:
134: public String toString() {
135: return "JavaApplicationMetaData[id='"
136: + _id
137: + "',implClass='"
138: + IMPL_CLASS
139: + "',implCtorSig="
140: + (IMPL_CTOR_SIG == null ? null : Arrays
141: .asList(IMPL_CTOR_SIG)) + ",displayName='"
142: + _displayName + "',description='" + _description
143: + "',docUrl='" + _docUrl + "',author='" + _author
144: + "',threadsafe=" + _threadsafe + "',className="
145: + _className + "',fork=" + _fork + ",jnlpUrl='" + _href
146: + "',type=" + _type + ']';
147: }
148: }
|