cancelgetrequestimpl.java

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

JAVA
127
字号
/* * 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 */// $Id: CancelGetRequestImpl.java,v 1.2 2000/09/05 14:30:40 festor Exp $// $Source: /local/resedas/CVS-Repository/CmisJavaApi/src/fr/dyade/cmis/impl/operation/CancelGetRequestImpl.java,v $//  Todo//package fr.dyade.cmis.impl.operation;import java.util.Enumeration;import fr.dyade.cmis.api.CMISException;import fr.dyade.cmis.api.types.InvokeId;import fr.dyade.cmis.api.operation.*;import fr.dyade.cmis.api.operation.event.*;import fr.dyade.cmis.impl.CMISStackImpl;/** Basic implementation for a CMIS Cancel get request.  *  * This class mainly implements the <code>{@link fr.dyade.cmis.api.operation.CancelGetRequest}</code> interface.  * It has the filtering and scoping features so  * it is a subclass of <code>{@link FilteredAndScopedOperationImpl}</code>.  *  * Because of java scope properties this class is public, but user can not directly build instances  * as it is an abstract class. Instances are to be built using  * {@link fr.dyade.cmis.api.CMISManagerStack#newCancelGetRequest factory method}.  *  * @version cvs $Id: CancelGetRequestImpl.java,v 1.2 2000/09/05 14:30:40 festor Exp $  */public abstract class CancelGetRequestImpl extends CMISRequestImpl implements CancelGetRequest {            protected CancelGetRequestImpl( CMISStackImpl pStack ) {	 super(pStack, CANCEL_GET_REQUEST);      }            public final void  setGetInvokeId( InvokeId pIId ) {	 fGetInvokeId = pIId;      }            public final InvokeId getGetInvokeId()  {	 return fGetInvokeId;      }            /** The dispatch METHOD for event loop.	* @param the event (CancelGetConfirmation/Completion Event) to dispatch on this CancelGetRequest	* @see fr.dyade.cmis.impl.CMISEventQueue	*/      public final void dispatchEvent( CMISEvent pEvent ) {	 if (pEvent instanceof CancelGetConfirmationEvent) {	    CancelGetConfirmationEvent lEvent=(CancelGetConfirmationEvent)pEvent;	    lEvent.getRequest().addConfirmation(lEvent.getConfirmation());	      synchronized (fCMISEventListener){		 for (Enumeration e = fCMISEventListener.elements() ; e.hasMoreElements() ;) {		    ((CancelGetRequestListener)e.nextElement()).confirmation(lEvent);		 }	      }	   } else {	      if (pEvent instanceof CancelGetCompletionEvent) {		 complete();		 synchronized (fCMISEventListener){		    for (Enumeration e = fCMISEventListener.elements() ; e.hasMoreElements() ;) {		       ((CancelGetRequestListener)e.nextElement()).completion((CancelGetCompletionEvent)pEvent);		    }		 }		 // ok now all processing is done. Except if listener start threads.....		 endProcessing();	      } else {		 System.err.println("CancelGetRequestImpl.java:dispatchEvent bad event type INTERNAL ERROR");	      }	   }      }      /** Effective invocation of the cancel get service.	* This method is synchronized to ensure	* that no thread (dispatchEvent method) would change  the request state (fState)	* in the meanwhile.	    	*/      public final synchronized void doIt() throws CMISException {	 // CancelGet is always a confirmed service.	 synchronized(fStack.getPendingRequestQueueSynchronization()) {	    setInvokeId(new InvokeId(nativeDoIt()));	    fStack.addPendingRequest(this);	    // Only if call successfull.	    startProcessing();	 }       }      /**	* Add a Cancel get listener object to this Cancel Get call	* @param pCgl the CancelGetListener object	*/      public final void addCancelGetRequestListener(CancelGetRequestListener pCgl) {	 addCMISListener(pCgl);      }      /**	* Remove a Cancel get request listener object from a CancelGet  request	* @param pCgl the listener to remove	*/      public final void removeCancelGetRequestListener(CancelGetRequestListener pCgl) {	 removeCMISListener(pCgl);      }            private InvokeId fGetInvokeId = null;      } // CancelGetRequestImpl

⌨️ 快捷键说明

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