cmiserror.java

来自「CmisJavaApi」· Java 代码 · 共 241 行

JAVA
241
字号
/* * The contents of this file are subject to the Dyade Public License,  * as defined by the file DYADE_PUBLIC_LICENSE.TXT * * You may not use this file except in compliance with the License. You may * obtain a copy of the License on the Dyade web site (www.dyade.fr). * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific terms governing rights and limitations under the License. * * The Original Code is CmisJava API, including the java package  * fr.dyade.cmis, released September 5, 2000. * * The Initial Developer of the Original Code is Dyade. The Original Code and * portions created by Dyade are Copyright Bull and Copyright INRIA.  * All Rights Reserved. *//*      Copyright 1996-2000 by Institut National de Recherche en Informatique  *                             et en Automatique (INRIA) *          All rights reserved.  See COPYRIGHT in top-level directory. * *      Authors: Laurent Andrey, Eric Dillon, Olivier Festor *///---------------------------------------------------------------------------////  CVS Info//---------------------------------------------------------------------------//////  $Id: CMISError.java,v 1.2 2000/09/05 13:30:34 festor Exp $////---------------------------------------------------------------------------////  Todo//---------------------------------------------------------------------------//// - provide more STATIC convenient constructors & make PRIVATE basic constructors.// - provide a nice way to handle Get/Set error listpackage fr.dyade.cmis.api.types;import java.io.ObjectStreamException;/** Support for the CMIS <i>Errors</i> service parameter.  *  * NOTE:   * <menu>  * <li>All  of all X710 errors should be set-up are not present  * See [X711, page 18,19]  ASN1 definition for CMIP pdu to get a full list of all   * possible errors.   * <li>An implemention via <i>constant</i> object could be designed...  * </menu>  * @version cvs $Id: CMISError.java,v 1.2 2000/09/05 13:30:34 festor Exp $  */public class CMISError extends CMISType {/** Normalized errors code (ASN1 tag)  */      public static final short NO_SUCH_OBJECT_CLASS_TAG=0;      public static final short NO_SUCH_OBJECT_INSTANCE_TAG=1;      public static final short ACCESS_DENIED_TAG=2;      public static final short SYNC_NOT_SUPPORTED_TAG=3;      public static final short INVALID_FILTER_TAG=4;      public static final short NO_SUCH_ATTRIBUTE_TAG=5;      public static final short INVALID_ATTRIBUTE_VALUE_TAG=6;      public static final short GET_LIST_ERRORS_TAG=7;      public static final short SET_LIST_ERRORS_TAG=8;      public static final short NO_SUCH_ACTION_TAG=9;      public static final short PROCESSING_FAILURE_TAG=10;      public static final short DUPLICATE_MANAGED_OBJECT_INSTANCE_TAG=11;      public static final short NO_SUCH_REFERENCE_OBJECT_TAG=12;      public static final short NO_SUCH_EVENT_TYPE_TAG=13;      public static final short NO_SUCH_ARGUMENT_TAG=14;      public static final short INVALID_ARGUMENT_VALUE_TAG=15;      public static final short INVALID_SCOPE_TAG=16;      public static final short INVALID_OBJECT_INSTANCE_TAG=17;      public static final short MISSING_ATTRIBUTE_VALUE_TAG=18;      public static final short CLASS_INSTANCE_CONFLICT_TAG=19;      public static final short COMPLEXITY_LIMITATION_TAG=20;      public static final short MISTYPED_OPERATION_TAG=21;      public static final short NO_SUCH_INVOKE_ID_TAG=22;      public static final short OPERATION_CANCELLED_TAG=23;      public static final short INVALID_OPERATION_TAG=24;      public static final short INVALID_OPERATOR_TAG=25;/** Basic constructor.    Error is just handled by error code. We do not used a full set of subclasses.    May be we are wrong ! The encoding is common for all services, so one operation    could reply with an error not related to the requested service.         @param pErrorCode the error code for this error.         See the error code <i>constant</i> value below (see X711).*/      private CMISError( short pErrorCode ){	 super();	 fErrorCode=pErrorCode;      }/** Constructor with optional error argument.    @param pErrorCodethe error code for this error.     @param pArg the option extra info argument. May be null (or NULL     if called from native code).    See the error code <i>constant</i> value below (see X711).*/      private CMISError( short pErrorCode, CMISType pArg ){	 this(pErrorCode);	 fArg=pArg;      }      /* Dedicated factories, accordingly to X711 pg 18-19 */      public static final CMISError ACCESS_DENIED = new CMISError(ACCESS_DENIED_TAG);      //ACCES DENIED for ACTION LINKED replies...      public static final CMISError ACCESS_DENIED( ActionTypeId pActionType ) {return  new CMISError(ACCESS_DENIED_TAG, pActionType);}      public static CMISError CLASS_INSTANCE_CONFLICT(BaseManagedObjectId pBMOI) {return new CMISError(CLASS_INSTANCE_CONFLICT_TAG, pBMOI);}      public static CMISError CLASS_INSTANCE_CONFLICT(ObjectClass pObjectClass, ObjectInstance pObjectInstance) { 	 return CLASS_INSTANCE_CONFLICT(new BaseManagedObjectId(pObjectClass, pObjectInstance));      }      public static final CMISError COMPLEXITY_LIMITATION = new CMISError(COMPLEXITY_LIMITATION_TAG);      public static CMISError COMPLEXITY_LIMITATION( ComplexityLimitation pCL ) {return new CMISError(COMPLEXITY_LIMITATION_TAG, pCL);}      public static CMISError COMPLEXITY_LIMITATION( Scope pScope, Filter pFilter, Synchronization pSync ) {return new CMISError(COMPLEXITY_LIMITATION_TAG, new ComplexityLimitation(pScope, pFilter, pSync));}      public static CMISError DUPLICATE_MANAGED_OBJECT_INSTANCE( ObjectInstance pDuplicateOI ) { return new CMISError(DUPLICATE_MANAGED_OBJECT_INSTANCE_TAG, pDuplicateOI);}      public static CMISError GET_LIST_ERROR( GetListError pEl ) {	 return new CMISError(GET_LIST_ERRORS_TAG, pEl);      }      public static CMISError INVALID_ARGUMENT_VALUE( ActionInfo pAI ) {return new CMISError(INVALID_ARGUMENT_VALUE_TAG, pAI);}      public static CMISError INVALID_ARGUMENT_VALUE(ActionTypeId pActionType){	       return new CMISError(INVALID_ARGUMENT_VALUE_TAG, new ActionInfo(pActionType));      }      public static CMISError INVALID_ARGUMENT_VALUE(ActionTypeId pActionType, Any pInfoArgument){	 return new CMISError(INVALID_ARGUMENT_VALUE_TAG, new ActionInfo(pActionType, pInfoArgument));      }      public static CMISError INVALID_ARGUMENT_VALUE( EventValue pEV ) {return new CMISError(INVALID_ARGUMENT_VALUE_TAG, pEV);}      public static CMISError INVALID_ATTRIBUTE_VALUE( Attribute pAttribute ) {return new CMISError(INVALID_ATTRIBUTE_VALUE_TAG, pAttribute);}      public static CMISError INVALID_FILTER(Filter pFilter) {return new CMISError(INVALID_FILTER_TAG, pFilter);}      public static CMISError INVALID_OBJECT_INSTANCE(ObjectInstance pOI ) {return new CMISError(INVALID_OBJECT_INSTANCE_TAG, pOI);}      public static CMISError INVALID_SCOPE( Scope pScope ) { return new CMISError(INVALID_SCOPE_TAG, pScope);}      public static CMISError MISSING_ATTRIBUTE_VALUE( AttributeIdList pAIDL ) {return new CMISError(MISSING_ATTRIBUTE_VALUE_TAG, pAIDL);}      public static final CMISError MISTYPED_OPERATION = new CMISError(MISTYPED_OPERATION_TAG);      // Special case for ACTION linked replies      public static CMISError NO_SUCH_ACTION( ActionTypeId pActionType ) {return new CMISError(NO_SUCH_ACTION_TAG, pActionType);}      public static CMISError NO_SUCH_ACTION( NoSuchAction pNSA ) {return new CMISError(NO_SUCH_ACTION_TAG, pNSA);}      public static CMISError NO_SUCH_ACTION( ObjectClass pManagedObjectClass, ActionTypeId pActionType ) {	 return new CMISError(NO_SUCH_ACTION_TAG, new NoSuchAction(pManagedObjectClass, pActionType));}      public static CMISError NO_SUCH_ARGUMENT( NoSuchArgumentAction pNSAA ) {return new CMISError(NO_SUCH_ARGUMENT_TAG, pNSAA);}      public static CMISError NO_SUCH_ARGUMENT( NoSuchArgumentEvent pNSAE ) {return new CMISError(NO_SUCH_ARGUMENT_TAG, pNSAE);}      public static CMISError NO_SUCH_ARGUMENT( ObjectClass pManagedObjectClass, ActionTypeId pActionType ) {	 return new CMISError(NO_SUCH_ARGUMENT_TAG, new NoSuchArgumentAction(pManagedObjectClass, pActionType));}      public static CMISError NO_SUCH_ARGUMENT( ObjectClass pManagedObjectClass, EventTypeId pEventType ) {	 return new CMISError(NO_SUCH_ARGUMENT_TAG, new NoSuchArgumentEvent(pManagedObjectClass, pEventType));}      public static CMISError NO_SUCH_ATTRIBUTE( AttributeId pAID ) {return new CMISError(NO_SUCH_ATTRIBUTE_TAG, pAID);}      public static CMISError NO_SUCH_EVENT_TYPE( NoSuchEventType pNSET ){return new CMISError(NO_SUCH_EVENT_TYPE_TAG, pNSET);}      public static CMISError NO_SUCH_EVENT_TYPE( ObjectClass pManagedObjectClass, EventTypeId pEventType ) {	 return new CMISError(NO_SUCH_EVENT_TYPE_TAG, new NoSuchEventType(pManagedObjectClass, pEventType));}      public static CMISError NO_SUCH_INVOKE_ID( InvokeId pIID ){ return new CMISError(NO_SUCH_INVOKE_ID_TAG, pIID);}      public static CMISError NO_SUCH_OBJECT_CLASS( ObjectClass pOC ){return new CMISError(NO_SUCH_OBJECT_CLASS_TAG, pOC);}      public static CMISError NO_SUCH_OBJECT_INSTANCE( ObjectInstance pOI ){return new CMISError(NO_SUCH_OBJECT_INSTANCE_TAG, pOI);}      public static CMISError NO_SUCH_REFERENCE_OBJECT( ObjectInstance pOI ){return new CMISError(NO_SUCH_REFERENCE_OBJECT_TAG, pOI);}      public static final CMISError OPERATION_CANCELLED= new CMISError(OPERATION_CANCELLED_TAG);      public static final CMISError PROCESSING_FAILURE=  new CMISError(PROCESSING_FAILURE_TAG);//      public static CMISError PROCESSING_FAILURE() {return _PROCESSING_FAILURE;}      public static CMISError PROCESSING_FAILURE( ProcessingFailure pProcessingFailure ) { return new CMISError(PROCESSING_FAILURE_TAG, pProcessingFailure);}      public static CMISError SET_LIST_ERROR( SetListError pEl ) {	 return new CMISError(SET_LIST_ERRORS_TAG, pEl);      }      public static CMISError SYNC_NOT_SUPPORTED( Synchronization pSync ) {return new CMISError(SYNC_NOT_SUPPORTED_TAG, pSync);}      public final short getErrorCode() {	 return fErrorCode;      }      /** ---      public final void setErrorArg(CMISType pArg) {	 fArg = pArg;      }      ---- */      public final CMISType getArg(){	 return fArg;      }/** Text message associated to the error.  * @return The message associated to the error.  */   public String toString(){      String lErrorMsg=((fErrorCode>=0) && (fErrorCode<ErrorString.length))	 ?ErrorString[fErrorCode]	 :"Bad CMIS Error code";      return (fArg!=null)	 ? lErrorMsg+" : "+ fArg	 : lErrorMsg;   }  /** Error message array.  * Use error <tt>code</tt> as index is this message array.  */   private static final String[] ErrorString={     "no such object class",                // 0     "no such object instance",             // 1     "acces denied",                        // 2     "sync not supported",                  // 3     "invalid filter",                      // 4     "no such attribute",                   // 5     "invalid attribute value",             // 6     "get list errors",                     // 7     "set list errors",                     // 8     "no such action",                      // 9     "processing failure",                  // 10     "duplicate managed object instance",  // 11     "no such reference object",            // 12     "no such event type",                  // 13     "no such argument",                    // 14     "invalid argument value",              // 15     "invalid scope",                       // 16     "invalid object instance",             // 17     "missing attribute value",             // 18     "class instance conflict",             // 19     "complexity limitation",               // 20     "mistyped operation",                  // 21     "no such invoke id",                   // 22     "operation cancelled",                 // 23     "invalid operation",                   // 24     "invalid operator",                    // 25   };      private short fErrorCode=-1;      private CMISType fArg=null;      /** Filtering instance created after deserialization.	* <a HREF="http://www.javasoft.com/products/jdk/1.2/docs/guide/serialization/spec/input.doc6.html">	* Read javasof doc</a> about this method. We are exactly is the example shown here:	* "The readResolve method would be implemented to determine if that symbol was already defined 	* and substitute the preexisting equivalent Symbol object to maintain the identity constraint...",	* where Symbol objects are CMISError.PROCESSING_FAILURE (PROCESSING_FAILURE case, 	* with not SpecificInfo argument), CMISError.OPERATION_CANCELLED, COMPLEXITY_LIMITATION with null argument,	* MISTYPED_OPERATION	*/      public Object readResolve() throws ObjectStreamException {	 switch (fErrorCode) {	    case ACCESS_DENIED_TAG: return CMISError.ACCESS_DENIED;	    case COMPLEXITY_LIMITATION_TAG: return (fArg!=null) ? this : CMISError.COMPLEXITY_LIMITATION;	    case PROCESSING_FAILURE_TAG: return (fArg!=null)? this : CMISError.PROCESSING_FAILURE;	    case OPERATION_CANCELLED_TAG: return CMISError.OPERATION_CANCELLED;	    case MISTYPED_OPERATION_TAG: return CMISError.MISTYPED_OPERATION;	    default: return this;	 }      }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?