createrequestimpl.java

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

JAVA
184
字号
/* * 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: CreateRequestImpl.java,v 1.2 2000/09/05 14:30:41 festor Exp $//  $Source: /local/resedas/CVS-Repository/CmisJavaApi/src/fr/dyade/cmis/impl/operation/CreateRequestImpl.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.*;import fr.dyade.cmis.api.operation.*;import fr.dyade.cmis.api.operation.event.*;import fr.dyade.cmis.impl.*;/** Basic implementation of an a CMIS CREATE request.  * This class mainly implements the <code>{@link fr.dyade.cmis.api.operation.CreateRequest}</code> interface.  *  * 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#newCreateRequest factory method}.  * @see CreateConfirmation  * @version cvs $Id: CreateRequestImpl.java,v 1.2 2000/09/05 14:30:41 festor Exp $  */public abstract class CreateRequestImpl extends CMISRequestImpl implements CreateRequest {      protected CreateRequestImpl( CMISStackImpl pStack) {	 super(pStack, CREATE_REQUEST);      }        /** Verification of operation request parameters.	* This method checks parameters defined into this class and its super classes.	*  @return true is all set parameters are ok, and all mandatory parameters are set.	*  false otherwise.	*/            public boolean isReqValid() {	 return (fManagedObjectClass != null)&(super.isReqValid());      }        public final AttributeList getAttributeList(){	 return fAttributeList;      }      public  final ObjectClass getManagedObjectClass() {	 return fManagedObjectClass;      }            public final ObjectInstance getManagedObjectInstance() {	 return fManagedObjectInstance;      }      public final ObjectInstance getSuperiorObjectInstance() {	 return fSuperiorObject;      }      public final AccessControl getAccessControl() {	 return fAccessControl;      }            public  final ObjectInstance getReferenceObjectInstance() {	 return fReferenceObjectInstance;      }            public final void setManagedObjectClass( ObjectClass pClass) {	 fManagedObjectClass = pClass;      }      public final void setManagedObjectInstance(ObjectInstance pMO) {	 fManagedObjectInstance=pMO;      }      public final void setSuperiorObjectInstance(ObjectInstance pSO) {	 fSuperiorObject=pSO;      }      public final void setAccessControl( AccessControl pAC) {	 fAccessControl=pAC;      }            public final void setReferenceObjectInstance(ObjectInstance pRO ) {	 fReferenceObjectInstance=pRO;      }            public final void setAttributeList( AttributeList pAL) {	 fAttributeList=pAL;      }      /**	* Add a Create get request listener to  Create  request	* @param pCgl the listener to add	*/      public final void addCreateRequestListener(CreateRequestListener pCrl){	 addCMISListener(pCrl);      }      /**	* Remove a Create request listener  from a Create  request	* @param  the listener to remove	*/      public final void removeCreateRequestListener(CreateRequestListener pCrl) {	 removeCMISListener(pCrl);      }      /** The dispatch METHOD for event loop.	  @param the event (ActionConfirmation/Completion Event) to dispatch on this ActionRequest	  @see fr.dyade.cmis.impl.CMISEventQueue      */      public final void dispatchEvent( CMISEvent pEvent ) {	 if (pEvent instanceof CreateConfirmationEvent) {	    CreateConfirmationEvent lEvent=(CreateConfirmationEvent)pEvent;	    lEvent.getRequest().addConfirmation(lEvent.getConfirmation());	    synchronized (fCMISEventListener){	       for (Enumeration e = fCMISEventListener.elements() ; e.hasMoreElements() ;) {		  ((CreateRequestListener)e.nextElement()).confirmation(lEvent);	       }	    }	 } else {	    if (pEvent instanceof CreateCompletionEvent) {	       complete();	       synchronized (fCMISEventListener){		  for (Enumeration e = fCMISEventListener.elements() ; e.hasMoreElements() ;) {		     ((CreateRequestListener)e.nextElement()).completion((CreateCompletionEvent)pEvent);		  }	       }	       endProcessing();	    } else {	       System.err.println("CreateRequestImpl.java:dispatchEvent bad event type INTERNAL ERROR");	    }	 }      }      /**	* Effective Create service invocation.	* This method is synchronized to ensure	* that no thread (dispatchEvent method) would change  the request state (fState)	* in the meanwhile.	* TODO exception stuff.	*/      public final synchronized void doIt() throws CMISException { 	 synchronized(fStack.getPendingRequestQueueSynchronization()) {	    // Create is always a confirmed service.	    setInvokeId(new InvokeId(nativeDoIt()));	    fStack.addPendingRequest(this);	    //Only if successfull	    startProcessing();	 }      }      private ObjectClass fManagedObjectClass;      private ObjectInstance fManagedObjectInstance;      private ObjectInstance fSuperiorObject;      private AccessControl fAccessControl;      private ObjectInstance fReferenceObjectInstance;      private AttributeList fAttributeList;} // CreateRequestImpl 

⌨️ 快捷键说明

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