Class StubStrategy


  • public class StubStrategy
    extends Object
    An StubStrategy for a given method knows how to marshal the sequence of method parameters into a CDR output stream, how to unmarshal from a CDR input stream the return value of the method, and how to unmarshal from a CDR input stream an application exception thrown by the method.
    Version:
    $Revision: 81018 $
    Author:
    Francisco Reverbel
    • Method Detail

      • forMethod

        public static StubStrategy forMethod​(String[] paramTypes,
                                             String[] excepIds,
                                             String[] excepTypes,
                                             String retvalType,
                                             ClassLoader cl)
        Returns an StubStrategy for a method, given descriptions of the method parameters, exceptions, and return value. Parameter and return value descriptions are "marshaller abbreviated names".
        Parameters:
        paramTypes - a string array with marshaller abbreviated names for the method parameters
        excepIds - a string array with the CORBA repository ids of the exceptions thrown by the method
        excepTypes - a string array with the Java class names of the exceptions thrown by the method
        retvalType - marshaller abbreaviated name for the return value of the method
        cl - a ClassLoader to load value classes (if null, the current thread's context class loader will be used)
        Returns:
        an StubStrategy for the operation with the parameters, exceptions, and return value specified.
        See Also:
        CDRStream.abbrevFor(Class clz)
      • writeParams

        public void writeParams​(org.omg.CORBA_2_3.portable.OutputStream out,
                                Object[] params)
        Marshals the sequence of method parameters into an output stream.
        Parameters:
        out - a CDR output stream
        params - an object array with the parameters.
      • isNonVoid

        public boolean isNonVoid()
        Returns true if this StubStrategy's method is non void.
      • readRetval

        public Object readRetval​(org.omg.CORBA_2_3.portable.InputStream in)
        Unmarshals from an input stream the return value of the method.
        Parameters:
        in - a CDR input stream
        Returns:
        a value unmarshaled from the stream.
      • readException

        public Exception readException​(String id,
                                       org.omg.CORBA_2_3.portable.InputStream in)
        Unmarshals from an input stream an exception thrown by the method.
        Parameters:
        id - the repository id of the exception to unmarshal
        in - a CDR input stream
        Returns:
        an exception unmarshaled from the stream.
      • isDeclaredException

        public boolean isDeclaredException​(Throwable t)
        Checks if a given Throwable instance corresponds to an exception declared by this StubStrategy's method.
        Parameters:
        t - an exception class
        Returns:
        true if t is an instance of any of the exceptions declared by this StubStrategy's method, false otherwise.
      • convertLocalRetval

        public Object convertLocalRetval​(Object obj)
        Converts the return value of a local invocation into the expected type. A conversion is needed if the return value is a remote interface (in this case PortableRemoteObject.narrow() must be called).
        Parameters:
        obj - the return value to be converted
        Returns:
        the converted value.