- /*
- * @(#)DynamicMethodMarshaller.java 1.10 04/06/21
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package com.sun.corba.se.spi.presentation.rmi ;
-
- import org.omg.CORBA_2_3.portable.InputStream ;
- import org.omg.CORBA_2_3.portable.OutputStream ;
- import org.omg.CORBA.portable.ApplicationException ;
-
- import java.lang.reflect.Method ;
-
- import java.rmi.RemoteException ;
-
- import com.sun.corba.se.spi.orb.ORB ;
-
- /** Used to read and write arguments and results for a particular method.
- *
- */
- public interface DynamicMethodMarshaller
- {
- /** Returns the method used to create this DynamicMethodMarshaller.
- */
- Method getMethod() ;
-
- /** Copy the arguments as needed for this particular method.
- * Can be optimized so that as little copying as possible is
- * performed.
- */
- Object[] copyArguments( Object[] args, ORB orb ) throws RemoteException ;
-
- /** Read the arguments for this method from the InputStream.
- * Returns null if there are no arguments.
- */
- Object[] readArguments( InputStream is ) ;
-
- /** Write arguments for this method to the OutputStream.
- * Does nothing if there are no arguments.
- */
- void writeArguments( OutputStream os, Object[] args ) ;
-
- /** Copy the result as needed for this particular method.
- * Can be optimized so that as little copying as possible is
- * performed.
- */
- Object copyResult( Object result, ORB orb ) throws RemoteException ;
-
- /** Read the result from the InputStream. Returns null
- * if the result type is null.
- */
- Object readResult( InputStream is ) ;
-
- /** Write the result to the OutputStream. Does nothing if
- * the result type is null.
- */
- void writeResult( OutputStream os, Object result ) ;
-
- /** Returns true iff thr's class is a declared exception (or a subclass of
- * a declared exception) for this DynamicMethodMarshaller's method.
- */
- boolean isDeclaredException( Throwable thr ) ;
-
- /** Write the repository ID of the exception and the value of the
- * exception to the OutputStream. ex should be a declared exception
- * for this DynamicMethodMarshaller's method.
- */
- void writeException( OutputStream os, Exception ex ) ;
-
- /** Reads an exception ID and the corresponding exception from
- * the input stream. This should be an exception declared in
- * this method.
- */
- Exception readException( ApplicationException ae ) ;
- }