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: import java.util.Arrays;
050:
051: /**
052: * Metadata class to configure a workflow event listener.
053: *
054: * @author Adrian Price
055: */
056: public class WorkflowListenerMetaData extends ImplClassMetaData {
057: private WorkflowEventSubscription[] _subscription;
058:
059: public WorkflowListenerMetaData() {
060: }
061:
062: public WorkflowListenerMetaData(String id, String displayName,
063: String description, String docUrl, String author,
064: boolean threadsafe, String implClass, String[] implCtorSig,
065: WorkflowEventSubscription[] subscription) {
066:
067: super (id, displayName, description, docUrl, author, threadsafe,
068: implClass, implCtorSig);
069: _subscription = subscription;
070: }
071:
072: public WorkflowEventSubscription[] getSubscription() {
073: return _subscription != null ? _subscription : _type == null
074: || !allowInheritance ? null
075: : ((WorkflowListenerMetaData) _type).getSubscription();
076: }
077:
078: public WorkflowEventSubscription getSubscription(int i) {
079: return getSubscription()[i];
080: }
081:
082: public void setSubscription(int i,
083: WorkflowEventSubscription subscription) {
084: _subscription[i] = subscription;
085: }
086:
087: public void setSubscription(WorkflowEventSubscription[] subscription) {
088: _subscription = subscription;
089: }
090:
091: public Object createInstance(EntityResolver entityResolver)
092: throws RepositoryException {
093:
094: return createInstance(EMPTY_ARGS);
095: }
096:
097: public String toString() {
098: return "WorkflowListenerMetaData[id='"
099: + _id
100: + "', implClass='"
101: + getImplClass()
102: + "', implCtorSig="
103: + (getImplCtorSig() == null ? null : "length:"
104: + getImplCtorSig().length
105: + Arrays.asList(getImplCtorSig()))
106: + ", displayName='"
107: + _displayName
108: + "', description='"
109: + _description
110: + "', docUrl='"
111: + _docUrl
112: + "', author='"
113: + _author
114: + "', threadsafe="
115: + _threadsafe
116: + "', subscription="
117: + (_subscription == null ? null : "length:"
118: + _subscription.length
119: + Arrays.asList(_subscription)) + ",_type="
120: + _type + ']';
121: }
122: }
|