setrequestimpl.java

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

JAVA
157
字号
/* * 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: SetRequestImpl.java,v 1.2 2000/09/05 14:30:47 festor Exp $//  $Source: /local/resedas/CVS-Repository/CmisJavaApi/src/fr/dyade/cmis/impl/operation/SetRequestImpl.java,v $////  Todo//package fr.dyade.cmis.impl.operation;import java.util.Enumeration;import fr.dyade.cmis.api.*;import fr.dyade.cmis.api.types.*;import fr.dyade.cmis.api.operation.*;import fr.dyade.cmis.api.operation.event.*;import fr.dyade.cmis.impl.*;/** Basic implementation for a CMIS Set request.  *  * This class mainly implements the <code>{@link fr.dyade.cmis.api.operation.SetRequest}</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#newSetRequest factory method}.  *  * @version cvs $Id: SetRequestImpl.java,v 1.2 2000/09/05 14:30:47 festor Exp $  */public abstract class SetRequestImpl extends FilteredAndScopedOperationImpl   implements SetRequest {	 protected SetRequestImpl( CMISStackImpl pStack ) {	    super(pStack, SET_REQUEST);	 }	 	 public final boolean isReqValid() {	    return 	       (fMode!=null) &	       ((fModificationAttributeList!=null)&(fModificationAttributeList.isValid())) &	       super.isReqValid();// for base class and object into FilteredAndScopedOperationImpl	 }  	 public final Mode getMode() {	    return fMode;	 }  	 public final ModificationAttributeList getModificationList() {	    return fModificationAttributeList;	 }    	 public final void setMode(Mode pMode) {	    fMode = pMode;	 }	 	 public final void setModificationList(ModificationAttributeList pList) {	    fModificationAttributeList=pList;	 }	/**	  * Add an SetRequestListner object to a set request.	  * @param pSl the  listener to add	  */	 public final void addSetRequestListener(SetRequestListener pSl) {	    addCMISListener(pSl);	 }	/**	  * Remove an SetRequestListner object from a set request.	  * @param pSl the  listener to remove	  */	 public final void removeGetRequestListener(GetRequestListener pSl) {	    removeCMISListener(pSl);	 }	 /** The dispatch METHOD for event loop.	     @param the event (SetConfirmation/Completion Event) to dispatch on this GetRequest	     @see fr.dyade.cmis.impl.CMISEventQueue	 */	 public final void dispatchEvent( CMISEvent pEvent ) {	    if (pEvent instanceof SetConfirmationEvent) {	       SetConfirmationEvent lEvent=(SetConfirmationEvent)pEvent;	       lEvent.getRequest().addConfirmation(lEvent.getConfirmation());	       synchronized (fCMISEventListener){		  for (Enumeration e = fCMISEventListener.elements() ; e.hasMoreElements() ;) {		     ((SetRequestListener)e.nextElement()).confirmation(lEvent);		  }	       }	    } else {	       if (pEvent instanceof SetCompletionEvent) {		  complete();		  synchronized (fCMISEventListener){		     for (Enumeration e = fCMISEventListener.elements() ; e.hasMoreElements() ;) {		     ((SetRequestListener)e.nextElement()).completion((SetCompletionEvent)pEvent);		     }		  }		  endProcessing();	       } else {		  System.err.println("SetRequestImpl.java:dispatchEvent bad event type INTERNAL ERROR");	       }	    }	 }	 /**	   * The actual call to the actual stack	   * This method is synchronized to ensure	   * that no thread (Listening thread calling dispatchEvent() method) 	   * would change  the request state (fState)	   * in the meanwhile.	   */	 public final synchronized void doIt() throws CMISException {	    int lInvokeId;	    if (fMode==Mode.CONFIRMED) {	       synchronized(fStack.getPendingRequestQueueSynchronization()) {		  lInvokeId=nativeDoIt();		     // fInvokeId has been affected by nativeDoIt.		  setInvokeId(new InvokeId(lInvokeId));		  fStack.addPendingRequest(this);	       }	       startProcessing();	    } else {	       // no need for synchro in non confirmed mode: no confirmation	       // is excepted for this invoke id.	       lInvokeId=nativeDoIt();	    }	    // not confirmed mode: Open Master invokeid is not significant, 	    // and no confirmation/completion events are expected.	 }	 private Mode fMode=null; //LA: default mandatory here ?	 private ModificationAttributeList fModificationAttributeList=null;} // SetRequestImpl.java

⌨️ 快捷键说明

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