Class ModularClassTable

  • All Implemented Interfaces:
    ClassTable

    public final class ModularClassTable
    extends java.lang.Object
    implements ClassTable
    A class table which implements an alternate class resolution strategy based on JBoss Modules. Each class name is stored along with its corresponding module identifier, which allows the object graph to be exactly reconstituted on the remote side. This class should only be used when the marshalling and unmarshalling side share the same class files.
    • Field Detail

      • moduleLoader

        private final org.jboss.modules.ModuleLoader moduleLoader
    • Constructor Detail

      • ModularClassTable

        private ModularClassTable​(org.jboss.modules.ModuleLoader moduleLoader)
    • Method Detail

      • getInstance

        public static ModularClassTable getInstance​(org.jboss.modules.ModuleLoader moduleLoader)
        Get an instance using the given module loader.
        Parameters:
        moduleLoader - the module loader to use
        Returns:
        the modular class table
      • getClassWriter

        public ClassTable.Writer getClassWriter​(java.lang.Class<?> clazz)
                                         throws java.io.IOException
        Determine whether the given class reference is a valid predefined reference.
        Specified by:
        getClassWriter in interface ClassTable
        Parameters:
        clazz - the candidate class
        Returns:
        the class writer, or null to use the default mechanism
        Throws:
        java.io.IOException - if an I/O error occurs
      • readClass

        public java.lang.Class<?> readClass​(Unmarshaller unmarshaller)
                                     throws java.io.IOException,
                                            java.lang.ClassNotFoundException
        Read a class from the stream. The class will have been written by the ClassTable.getClassWriter(Class) method's Writer instance, as defined above.
        Specified by:
        readClass in interface ClassTable
        Parameters:
        unmarshaller - the unmarshaller to read from
        Returns:
        the class
        Throws:
        java.io.IOException - if an I/O error occurs
        java.lang.ClassNotFoundException - if a class could not be found