001: /*
002: * This file is part of the WfMOpen project.
003: * Copyright (C) 2001-2006 Danet GmbH (www.danet.de), BU BTS.
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: ASAPException.java,v 1.5 2007/03/29 11:46:40 schnelle Exp $
021: *
022: * $Log: ASAPException.java,v $
023: * Revision 1.5 2007/03/29 11:46:40 schnelle
024: * Reactivated ASAPException to propagate ASAP error messages in cases of an invalid key, a missing resource or an invalid factory.
025: *
026: * Revision 1.4 2007/01/31 22:55:36 mlipp
027: * Some more refactoring and fixes of problems introduced by refactoring.
028: *
029: * Revision 1.3 2007/01/31 12:24:05 drmlipp
030: * Design revisited.
031: *
032: * Revision 1.2 2007/01/30 11:56:13 drmlipp
033: * Merged Wf-XML branch.
034: *
035: * Revision 1.1.2.2 2007/01/29 15:04:22 schnelle
036: * Renaming of Observer to ObserverRegistry and URIDecoder to ResourceReference.
037: *
038: * Revision 1.1.2.1 2006/12/12 13:24:38 schnelle
039: * Introduction of ASAPException to provide a detailed mesage.
040: *
041: */
042: package de.danet.an.workflow.clients.wfxml;
043:
044: /**
045: * ASAP specific error.
046: *
047: * @author Dirk Schnelle
048: *
049: */
050: public class ASAPException extends Exception {
051: // Header-specific 100 Series
052: // These exceptions deal with missing or invalid parameters in the header.
053: public static final int ASAP_PARSING_ERROR = 101;
054: public static final int ASAP_ELEMENT_MISSING = 102;
055: public static final int ASAP_INVALID_VERSION = 103;
056: public static final int ASAP_INVALID_RESPONSE_REQUIRED_VALUE = 104;
057: public static final int ASAP_INVALID_KEY = 105;
058: public static final int ASAP_INVALID_OPERATION_SPECIFICATION = 106;
059: public static final int ASAP_INVALID_REQUEST_ID = 107;
060:
061: // Data 200 Series
062: // These exceptions deal with incorrect context or result data
063: public static final int ASAP_INVALID_CONTEXT_DATA = 201;
064: public static final int ASAP_INVALID_RESULT_DATA = 202;
065: public static final int ASAP_INVALID_RESULT_DATA_SET = 203;
066:
067: // Authorization 300 Series
068: // A user may not be authorized to carry out this operation on a particular
069: // resource, e.g., may not create a process instance for that process
070: // definition.
071: public static final int ASAP_NO_AUTHORIZATION = 301;
072:
073: // Operation 400 Series
074: // The operation can not be accomplished because of some temporary internal
075: // error in the workflow engine. This error may occur even when the input
076: // data is syntactically correct and authorization is permitted.
077: public static final int ASAP_OPERATION_FAILED = 401;
078:
079: // Resource Access 500 Series
080: // A valid Key has been used, however this operation cannot currently be
081: // invoked on the specified resource.
082: public static final int ASAP_NO_ACCESS_TO_RESOURCE = 501;
083: public static final int ASAP_INVALID_FACTORY = 502;
084: public static final int ASAP_MISSING_INSTANCE_KEY = 503;
085: public static final int ASAP_INVALID_INSTANCE_KEY = 504;
086:
087: // Operation-specific 600 Series
088: // These are the more operation specific exceptions. Typically, they are
089: // only used in a few operations, possibly a single one.
090: public static final int ASAP_INVALID_STATE_TRANSITION = 601;
091: public static final int ASAP_INVALID_OBSERVER_FOR_RESOURCE = 602;
092: public static final int ASAP_MISSING_NOTIFICATION_NAME = 603;
093: public static final int ASAP_INVALID_NOTIFICATION_NAME = 604;
094: public static final int ASAP_HISTORY_NOT_AVAILABLE = 605;
095:
096: /** ASAP error code. */
097: private final int errorCode;
098:
099: /**
100: * Creates a new instance with all attributes initialized
101: * to defaults or the given values.
102: *
103: * @param code the ASAP error code.
104: * @param message the detail message.
105: */
106: public ASAPException(int code, String message) {
107: super (message);
108:
109: errorCode = code;
110: }
111:
112: /**
113: * Creates a new instance with all attributes initialized
114: * to defaults or the given values.
115: *
116: * @param code the ASAP error code.
117: * @param cause root cause.
118: */
119: public ASAPException(int code, Throwable cause) {
120: super (cause);
121:
122: errorCode = code;
123: }
124:
125: /**
126: * Creates a new instance with all attributes initialized
127: * to defaults or the given values.
128: *
129: * @param code the ASAP error code.
130: * @param message the detail message.
131: * @param cause root cause.
132: */
133: public ASAPException(int code, String message, Throwable cause) {
134: super (message, cause);
135:
136: errorCode = code;
137: }
138:
139: /**
140: * Retrieves the ASAP specific error code.
141: * @return ASAP error code.
142: */
143: public int getErrorCode() {
144: return errorCode;
145: }
146: }
|