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 + -
显示快捷键?