Class CNNameParser

java.lang.Object
org.glassfish.jndi.cosnaming.CNNameParser
All Implemented Interfaces:
NameParser

public final class CNNameParser extends Object implements NameParser
Parsing routines for NameParser as well as COS Naming stringified names. This is used by CNCtx to create a NameComponent[] object and vice versa. It follows Section 4.5 of Interoperable Naming Service (INS) 98-10-11. In summary, the stringified form is a left-to-right, forward-slash separated name. id and kinds are separated by '.'. backslash is the escape character.
  • Field Details

  • Constructor Details

    • CNNameParser

      public CNNameParser()
      Constructs a new name parser for parsing names in INS syntax.
  • Method Details

    • parse

      public Name parse(String name) throws NamingException
      Returns a CompoundName given a string in INS syntax.
      Specified by:
      parse in interface NameParser
      Parameters:
      name - The non-null string representation of the name.
      Returns:
      a non-null CompoundName
      Throws:
      NamingException
    • nameToCosName

      static NameComponent[] nameToCosName(Name name) throws InvalidNameException
      Creates a NameComponent[] from a Name structure. Used by CNCtx to convert the input Name arg into a NameComponent[].
      Parameters:
      a - CompoundName or a CompositeName; each component must be the stringified form of a NameComponent.
      Throws:
      InvalidNameException
    • cosNameToInsString

      static String cosNameToInsString(NameComponent[] cname)
      Returns the INS stringified form of a NameComponent[]. Used by CNCtx.getNameInNamespace(), CNCompoundName.toString().
    • cosNameToName

      static Name cosNameToName(NameComponent[] cname)
      Creates a CompositeName from a NameComponent[]. Used by ExceptionMapper and CNBindingEnumeration to convert a NameComponent[] into a composite name.
    • insStringToStringifiedComps

      private static Vector<String> insStringToStringifiedComps(String str) throws InvalidNameException
      Converts an INS-syntax string name into a Vector in which each element of the vector contains a stringified form of a NameComponent.
      Throws:
      InvalidNameException
    • parseComponent

      private static NameComponent parseComponent(String compStr) throws InvalidNameException
      Return a NameComponent given its stringified form.
      Throws:
      InvalidNameException
    • stringifyComponent

      private static String stringifyComponent(NameComponent comp)
    • escape

      private static String escape(String str)
      Returns a string with '.', '\', '/' escaped. Used when stringifying the name into its INS stringified form.
    • isMeta

      private static boolean isMeta(char ch)
      In INS, there are three meta characters: '.', '/' and '\'.