001: /*
002: * This file is part of the WfMOpen project.
003: * Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
004: * All rights reserved.
005: *
006: * This program is free software; you can redistribute it and/or modify
007: * it under the terms of the GNU General Public License as published by
008: * the Free Software Foundation; either version 2 of the License, or
009: * (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU General Public License for more details.
015: *
016: * You should have received a copy of the GNU General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: *
020: * $Id: ToolInvocationFailedAuditEvent.java,v 1.3 2006/09/29 12:32:08 drmlipp Exp $
021: *
022: * $Log: ToolInvocationFailedAuditEvent.java,v $
023: * Revision 1.3 2006/09/29 12:32:08 drmlipp
024: * Consistently using WfMOpen as projct name now.
025: *
026: * Revision 1.2 2005/04/22 15:11:02 drmlipp
027: * Merged changes from 1.3 branch up to 1.3p15.
028: *
029: * Revision 1.1.1.1.6.2 2005/04/18 11:11:21 drmlipp
030: * More event handling optimization.
031: *
032: * Revision 1.1.1.1.6.1 2005/04/16 21:18:30 drmlipp
033: * Made audit event filtering more flexible and added possibility to turn
034: * off audit log.
035: *
036: * Revision 1.1.1.1 2003/06/30 20:05:15 drmlipp
037: * Initial import
038: *
039: * Revision 1.4 2003/06/27 08:51:45 lipp
040: * Fixed copyright/license information.
041: *
042: * Revision 1.3 2003/04/25 14:50:59 lipp
043: * Fixed javadoc errors and warnings.
044: *
045: * Revision 1.2 2002/11/05 12:47:20 lipp
046: * Fixes to local invocation queue and ToolInvocationFailedAuditEvent.
047: *
048: * Revision 1.1 2002/10/17 12:17:42 lipp
049: * Better tool invocation failed handling.
050: *
051: */
052: package de.danet.an.workflow.domain;
053:
054: import java.util.Date;
055:
056: import de.danet.an.workflow.api.ActivityUniqueKey;
057: import de.danet.an.workflow.api.ProcessDefinition;
058:
059: /**
060: * This class provides an internal event that is thrown when the
061: * invocation of a tool has failed. It may be caused by an exception
062: * when invoking {@link de.danet.an.workflow.spis.aii.ToolAgent#invoke
063: * <code>ToolAgent.invoke</code>}).<P>
064: *
065: * This audit event differs from a normal <code>WfAuditEvent</code> as
066: * it has only <code>source</code> set because we don't want the
067: * activity to become involved in the current transaction when we
068: * generate this event and thus cannot access the usually supplied
069: * attributes.
070: *
071: * @author <a href="mailto:lipp@danet.de"></a>
072: * @version $Revision: 1.3 $
073: */
074:
075: public class ToolInvocationFailedAuditEvent extends DefaultAuditEvent {
076:
077: /** Event type tool failed. */
078: public static final String INVOC_FAILED = "invocFailed";
079:
080: /**
081: * Creates a new <code>ToolInvocationFailedAuditEvent</code> based
082: * on the given activity unique key. The event will only partially be
083: * initialized, i.e. only event type, time, activity key, process
084: * key and process manager name will be filled in. <P>
085: *
086: * The constructor restricts itself to the data available as
087: * unique key in order to support an implementation of
088: * <code>WfActivity</code> that caches this data and can thus
089: * provide it even in case of server failure (which may be part of
090: * the cause for the tool invocation failure).
091: *
092: * @param auk the activity's unique key.
093: */
094: public ToolInvocationFailedAuditEvent(ActivityUniqueKey auk) {
095: super (null, null, new Date(), auk.activityKey(), null, auk
096: .processKey(), null, auk.managerName(), null,
097: ProcessDefinition.AUDIT_SELECTION_NO_EVENTS, false);
098: }
099:
100: /**
101: * Creates a new <code>ToolInvocationFailedAuditEvent</code> with the
102: * given source and all other attributes copied from the given
103: * event.
104: * @param source the value for the source attribute.
105: * @param baseInfo a <code>ToolInvocationFailedAuditEvent</code>
106: * containing further information for the event.
107: */
108: private ToolInvocationFailedAuditEvent(Object source,
109: ToolInvocationFailedAuditEvent baseInfo) {
110: super (source, baseInfo);
111: }
112:
113: /**
114: * Return a new audit event object with the source attribute
115: * replaced with the given object.
116: * @param source the new source attribute.
117: * @return the new audit event.
118: */
119: public DefaultAuditEvent replaceSource(Object source) {
120: return new ToolInvocationFailedAuditEvent(source, this );
121: }
122:
123: /**
124: * Returns a textual representation of the event.
125: * @return the textual representation
126: */
127: public String toString() {
128: return "ToolInvocationFailedAuditEvent[" + super .toString()
129: + "]";
130: }
131:
132: }
|