Class CatalogEntry


  • public class CatalogEntry
    extends java.lang.Object
    Represents a Catalog entry.

    Instances of this class represent individual entries in a Catalog.

    Each catalog entry has a unique name and is associated with an arbitrary number of arguments (all strings). For example, the TR9401 catalog entry "PUBLIC" has two arguments, a public identifier and a system identifier. Each entry has a unique numeric type, assigned automatically when the entry type is created.

    The number and type of catalog entries is maintained statically. Catalog classes, or their subclasses, can add new entry types, but all Catalog objects share the same global pool of types.

    Initially there are no valid entries.

    Version:
    1.0
    Author:
    Norman Walsh Norman.Walsh@Sun.COM
    See Also:
    Catalog
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Vector args
      The arguments associated with this entry
      protected static java.util.Vector entryArgs
      The entryTypes vector maps catalog entry types to the number of arguments they're required to have.
      protected int entryType
      The entry type of this entry
      protected static java.util.Hashtable entryTypes
      The entryTypes vector maps catalog entry names (e.g., 'BASE' or 'SYSTEM') to their type (1, 2, etc.).
      protected static int nextEntry
      The nextEntry is the ordinal number of the next entry type.
    • Constructor Summary

      Constructors 
      Constructor Description
      CatalogEntry()
      Null constructor; something for subclasses to call.
      CatalogEntry​(int type, java.util.Vector args)
      Construct a catalog entry of the specified type.
      CatalogEntry​(java.lang.String name, java.util.Vector args)
      Construct a catalog entry of the specified type.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static int addEntryType​(java.lang.String name, int numArgs)
      Adds a new catalog entry type.
      java.lang.String getEntryArg​(int argNum)
      Get an entry argument.
      static int getEntryArgCount​(int type)
      Find out how many arguments an entry is required to have.
      static int getEntryArgCount​(java.lang.String name)
      Find out how many arguments an entry is required to have.
      int getEntryType()
      Get the entry type.
      static int getEntryType​(java.lang.String name)
      Lookup an entry type
      void setEntryArg​(int argNum, java.lang.String newspec)
      Set an entry argument.
      • Methods inherited from class java.lang.Object

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

      • nextEntry

        protected static int nextEntry
        The nextEntry is the ordinal number of the next entry type.
      • entryTypes

        protected static java.util.Hashtable entryTypes
        The entryTypes vector maps catalog entry names (e.g., 'BASE' or 'SYSTEM') to their type (1, 2, etc.). Names are case sensitive.
      • entryArgs

        protected static java.util.Vector entryArgs
        The entryTypes vector maps catalog entry types to the number of arguments they're required to have.
      • entryType

        protected int entryType
        The entry type of this entry
      • args

        protected java.util.Vector args
        The arguments associated with this entry
    • Constructor Detail

      • CatalogEntry

        public CatalogEntry()
        Null constructor; something for subclasses to call.
      • CatalogEntry

        public CatalogEntry​(java.lang.String name,
                            java.util.Vector args)
                     throws CatalogException
        Construct a catalog entry of the specified type.
        Parameters:
        name - The name of the entry type
        args - A String Vector of arguments
        Throws:
        InvalidCatalogEntryTypeException - if no such entry type exists.
        InvalidCatalogEntryException - if the wrong number of arguments is passed.
        CatalogException
      • CatalogEntry

        public CatalogEntry​(int type,
                            java.util.Vector args)
                     throws CatalogException
        Construct a catalog entry of the specified type.
        Parameters:
        type - The entry type
        args - A String Vector of arguments
        Throws:
        InvalidCatalogEntryTypeException - if no such entry type exists.
        InvalidCatalogEntryException - if the wrong number of arguments is passed.
        CatalogException
    • Method Detail

      • addEntryType

        public static int addEntryType​(java.lang.String name,
                                       int numArgs)
        Adds a new catalog entry type.
        Parameters:
        name - The name of the catalog entry type. This must be unique among all types and is case-sensitive. (Adding a duplicate name effectively replaces the old type with the new type.)
        numArgs - The number of arguments that this entry type is required to have. There is no provision for variable numbers of arguments.
        Returns:
        The type for the new entry.
      • getEntryType

        public static int getEntryType​(java.lang.String name)
                                throws CatalogException
        Lookup an entry type
        Parameters:
        name - The name of the catalog entry type.
        Returns:
        The type of the catalog entry with the specified name.
        Throws:
        InvalidCatalogEntryTypeException - if no entry has the specified name.
        CatalogException
      • getEntryArgCount

        public static int getEntryArgCount​(java.lang.String name)
                                    throws CatalogException
        Find out how many arguments an entry is required to have.
        Parameters:
        name - The name of the catalog entry type.
        Returns:
        The number of arguments that entry type is required to have.
        Throws:
        InvalidCatalogEntryTypeException - if no entry has the specified name.
        CatalogException
      • getEntryArgCount

        public static int getEntryArgCount​(int type)
                                    throws CatalogException
        Find out how many arguments an entry is required to have.
        Parameters:
        type - A valid catalog entry type.
        Returns:
        The number of arguments that entry type is required to have.
        Throws:
        InvalidCatalogEntryTypeException - if the type is invalid.
        CatalogException
      • getEntryType

        public int getEntryType()
        Get the entry type.
        Returns:
        The entry type of the CatalogEntry
      • getEntryArg

        public java.lang.String getEntryArg​(int argNum)
        Get an entry argument.
        Parameters:
        argNum - The argument number (arguments are numbered from 0).
        Returns:
        The specified argument or null if an invalid argNum is provided.
      • setEntryArg

        public void setEntryArg​(int argNum,
                                java.lang.String newspec)
                         throws java.lang.ArrayIndexOutOfBoundsException
        Set an entry argument.

        Catalogs sometimes need to adjust the catlog entry parameters, for example to make a relative URI absolute with respect to the current base URI. But in general, this function should only be called shortly after object creation to do some sort of cleanup. Catalog entries should not mutate over time.

        Parameters:
        argNum - The argument number (arguments are numbered from 0).
        Throws:
        java.lang.ArrayIndexOutOfBoundsException - if an invalid argument number is provided.