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