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.xml.sax.EntityResolver;
048:
049: /**
050: * Describes a user-defined plug-in evaluator function set.
051: *
052: * @author Adrian Price
053: */
054: public final class FunctionSetMetaData extends ImplClassMetaData {
055: private static final long serialVersionUID = -7900131126653741780L;
056: private String _nsPrefix;
057: private String _nsURI;
058:
059: /**
060: * Constructs function set meta-data.
061: */
062: public FunctionSetMetaData() {
063: }
064:
065: /**
066: * Constructs function meta-data. Function set implementation classes must
067: * have a public no-args ctor.
068: *
069: * @param id The function set ID.
070: * @param displayName The display name.
071: * @param description Textual description of this function set.
072: * @param docUrl URL for documentation.
073: * @param author Author's name.
074: * @param implClass The fully qualified name of the function set
075: * implementation class.
076: * @param nsPrefix The namespace prefix to use.
077: * @param nsURI The namespace URI to use.
078: */
079: public FunctionSetMetaData(String id, String displayName,
080: String description, String docUrl, String author,
081: String implClass, String nsPrefix, String nsURI) {
082:
083: super (id, displayName, description, docUrl, author, true,
084: implClass, NO_ARGS_SIG);
085: _nsPrefix = nsPrefix;
086: _nsURI = nsURI;
087: }
088:
089: /**
090: * Returns an instance of the class that implements the extension
091: * functions.
092: *
093: * @param entityResolver
094: * @return Implementation class.
095: * @throws RepositoryException if the class could not be found.
096: */
097: public Object createInstance(EntityResolver entityResolver)
098: throws RepositoryException {
099:
100: return createInstance(EMPTY_ARGS);
101: }
102:
103: public String getNsPrefix() {
104: return _nsPrefix != null ? _nsPrefix : _type == null
105: || !allowInheritance ? null
106: : ((FunctionSetMetaData) _type).getNsPrefix();
107: }
108:
109: public void setNsPrefix(String nsPrefix) {
110: _nsPrefix = nsPrefix;
111: }
112:
113: public String getNsURI() {
114: return _nsURI != null ? _nsURI : _type == null
115: || !allowInheritance ? null
116: : ((FunctionSetMetaData) _type).getNsURI();
117: }
118:
119: public void setNsURI(String nsURI) {
120: _nsURI = nsURI;
121: }
122:
123: public String toString() {
124: return "FunctionSetMetaData[_id='" + _id + '\''
125: + ",_displayName='" + _displayName + '\''
126: + ",_description='" + _description + '\''
127: + ",_docUrl='" + _docUrl + '\'' + ",_author='"
128: + _author + '\'' + ",_implClass='" + getImplClass()
129: + '\'' + ",_nsPrefix='" + _nsPrefix + '\''
130: + ",_nsURI='" + _nsURI + '\'' + ",_type=" + _type + ']';
131: }
132: }
|