/*! @header FTExceptions @abstract Module of FT @availability OS X, GNUstep @copyright 2004, 2005, 2006 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  -------------------------------------------------------------------------
  Modification history

  14.02.05 ola     initial version
  23.08.06 ola     license changed
  -------------------------------------------------------------------------
  
*/ #if !defined(__FTExceptions_H) #define __FTExceptions_H #include #include #include #include /*! * @class FTExceptions * @abstract Base class of all FT exceptions */ @interface FTException : ECException @end /*! * @class FTUnknownException * @abstract Thrown in case of receiving an unknown exception * @discussion if the FT receives an exception which it did not expect * (e.g. through catching NSException) then it might throw instances of * this class */ @interface FTUnknownException : FTException { @private NSString *contextInfo; NSException *exception; } /*! * @method initWithContextInfo * @param aContextInfo a string giving a hint about the context where * the unknown exception has been thrown * @param anException an exception which has been caught in the context * @result self */ - initWithContextInfo: (NSString *) aContextInfo exception: (NSException *) anException; /*! * @method contextInfo * @result a string giving a hint about the context where * the unknown exception has been thrown */ - (NSString *) contextInfo; /*! * @method exception * @abstract return the unknown exception * @result exception which has been caught in the context */ - (NSException *) exception; @end /*! * @class FTInternalDatamanagementException * @abstract Thrown in case of an error while accessing BDB */ @interface FTInternalDatamanagementException : FTException { @private BDBOperationStatus operationStatus; BDBException *bdbException; } - int; /*! * @mehod initWithOperationStatus * @abstract Hand of the operation status code of BDB * @param status giving a hint about the error */ - initWithOperationStatus: (BDBOperationStatus) status; /*! * @method initWithBDBException * @param anException raisen BDB exception */ - initWithBDBException: (BDBException *) anException; - (void) dealloc; /*! * @method operationStatus * @result operation status, if it had been given before; otherwise * BDB_STATUS_UNKNOWN will be returned */ - (BDBOperationStatus) operationStatus; /*! * @method bdbException * @result returns the underlying bdb exception or nil if it had not been * specified */ - (BDBException *) bdbException; @end /*! * @class FTDatabaseCreationFailedException * @abstract Thrown if the creation of a database failed */ @interface FTDatabaseCreationFailedException : FTException { @private NSString *theReason; } /*! * @method initWithReason * @abstract Initializes the exception with the underlying information * about the reason * @result self */ - initWithReason: (NSString *) aReason; - (void) dealloc; /*! * @method reason * @result the underlying reason */ - (NSString *) reason; @end /*! * @class FTTransactionStepException * @abstract Thrown if a transaction step {@link FTTransactionStep} within * a transaction throws an exception. * @discussion This may be during a commitment or during an "undo" of previously * performed steps of a commitment.

* Instances of this class contain the original exception. */ @interface FTTransactionStepException : FTException { @private /** * Reference to the original transaction step exception */ id transactionStepException; } /*! * @method initWithTransactionStepException * @abstract Initializer used to hand off the causing exception * @param causingException exception thrown by transaction step * @result self */ - initWithTransactionStepException: (id) causingException; - (void) dealloc; /*! * @method transactionStepException returns the exception the transaction step * originally has thrown * @result exception thrown by transaction step */ - transactionStepException; @end /*! * @class FTDatabaseUpdateException * @abstract this exception is thrown if the addition, update etc. of data * failed for a more or less unknown reason */ @interface FTDatabaseUpdateException : FTException { @private BDBOperationStatus operationStatus; NSString *operationInfo; } - initWithOperationStatus: (BDBOperationStatus) aStatus operationInformation: (NSString *) anInfo; - (void) dealloc; /*! * @method operationStatus * @result status of the operation */ - (BDBOperationStatus) operationStatus; /*! * @method operationInfo * @result additional information regarding the failure */ - (NSString *) operationInfo; @end /*! * @class FTGraphRemoveException * @abstract Thrown in case of an exception while removing a graph. */ @interface FTGraphRemoveException : FTException { @private id graphId; } - initWithGraphId: (id ) graphId withReason: (NSString *) aReason; - (void) dealloc; /*! * @method graphId * @result id of the affected graph */ - (id ) graphId; @end #endif