Class CommandInfo


  • public class CommandInfo
    extends java.lang.Object
    The CommandInfo class is used by CommandMap implementations to describe the results of command requests. It provides the requestor with both the verb requested, as well as an instance of the bean. There is also a method that will return the name of the class that implements the command but it is not guaranteed to return a valid value. The reason for this is to allow CommandMap implmentations that subclass CommandInfo to provide special behavior. For example a CommandMap could dynamically generate JavaBeans. In this case, it might not be possible to create an object with all the correct state information solely from the class name.
    • Constructor Summary

      Constructors 
      Constructor Description
      CommandInfo​(java.lang.String verb, java.lang.String className)
      The Constructor for CommandInfo.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getCommandClass()
      Return the command's class name.
      java.lang.String getCommandName()
      Return the command verb.
      java.lang.Object getCommandObject​(DataHandler dh, java.lang.ClassLoader loader)
      Return the instantiated JavaBean component.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CommandInfo

        public CommandInfo​(java.lang.String verb,
                           java.lang.String className)
        The Constructor for CommandInfo.
        Parameters:
        verb - The command verb this CommandInfo decribes.
        className - The command's fully qualified class name.
    • Method Detail

      • getCommandName

        public java.lang.String getCommandName()
        Return the command verb.
        Returns:
        the command verb.
      • getCommandClass

        public java.lang.String getCommandClass()
        Return the command's class name. This method MAY return null in cases where a CommandMap subclassed CommandInfo for its own purposes. In other words, it might not be possible to create the correct state in the command by merely knowing its class name. DO NOT DEPEND ON THIS METHOD RETURNING A VALID VALUE!
        Returns:
        The class name of the command, or null
      • getCommandObject

        public java.lang.Object getCommandObject​(DataHandler dh,
                                                 java.lang.ClassLoader loader)
                                          throws java.io.IOException,
                                                 java.lang.ClassNotFoundException
        Return the instantiated JavaBean component.

        If the current runtime environment supports Beans.instantiate, use it to instantiate the JavaBeans component. Otherwise, use Class.forName.

        The component class needs to be public. On Java SE 9 and newer, if the component class is in a named module, it needs to be in an exported package.

        If the bean implements the jakarta.activation.CommandObject interface, call its setCommandContext method.

        If the DataHandler parameter is null, then the bean is instantiated with no data. NOTE: this may be useful if for some reason the DataHandler that is passed in throws IOExceptions when this method attempts to access its InputStream. It will allow the caller to retrieve a reference to the bean if it can be instantiated.

        If the bean does NOT implement the CommandObject interface, this method will check if it implements the java.io.Externalizable interface. If it does, the bean's readExternal method will be called if an InputStream can be acquired from the DataHandler.

        Parameters:
        dh - The DataHandler that describes the data to be passed to the command.
        loader - The ClassLoader to be used to instantiate the bean.
        Returns:
        The bean
        Throws:
        java.io.IOException - for failures reading data
        java.lang.ClassNotFoundException - if command object class can't be found
        See Also:
        CommandObject