Class TypeGroup


  • public class TypeGroup
    extends java.lang.Object
    the collection of types associated with an ECA rule
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<Type> exceptionTypes  
      private java.lang.ClassLoader loader  
      private boolean resolve  
      protected java.util.HashMap<java.lang.String,​Type> typeTable  
    • Constructor Summary

      Constructors 
      Constructor Description
      TypeGroup​(java.lang.ClassLoader loader)
      create a type group for a rule containing all the basic types
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addExceptionTypes​(java.lang.String[] exceptionTypeNames)  
      private boolean checkAlias​(Type type)
      if the supplied type has a package qualified name ensure that any existing entry with the unqualified name is aliased to it or else add an entry with an unqualified name as an alias for it.
      Type create​(java.lang.String name)
      create a type with a given name or return an existing type if the supplied name can be matched.
      Type create​(java.lang.String name, java.lang.Class clazz)
      create a type with a given name and class or return an existing type if the supplied name and class can be matched.
      Type createArray​(Type baseType)  
      Type ensureType​(java.lang.Class clazz)  
      java.util.List<Type> getExceptionTypes()  
      Type lookup​(java.lang.String name)
      lookup a type by name dereferencing it to its fully qualified type if that exists
      Type match​(java.lang.String[] path)  
      void resolveTypes()
      try to associate each type in the typegroup with a class
      • Methods inherited from class java.lang.Object

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

      • typeTable

        protected java.util.HashMap<java.lang.String,​Type> typeTable
      • loader

        private java.lang.ClassLoader loader
      • resolve

        private boolean resolve
      • exceptionTypes

        private java.util.List<Type> exceptionTypes
    • Constructor Detail

      • TypeGroup

        public TypeGroup​(java.lang.ClassLoader loader)
        create a type group for a rule containing all the basic types
        Parameters:
        loader - the class loader to use for type resolution
    • Method Detail

      • lookup

        public Type lookup​(java.lang.String name)
        lookup a type by name dereferencing it to its fully qualified type if that exists
        Parameters:
        name - the type name
        Returns:
        the type
      • create

        public Type create​(java.lang.String name)
        create a type with a given name or return an existing type if the supplied name can be matched. if the type name is qualified ensure that any existing type with an unqualified name matching this entry is not already aliased to another type.
        Parameters:
        name - the type name
        Returns:
        the type if created or matched or null if there is an alias mismatch
      • create

        public Type create​(java.lang.String name,
                           java.lang.Class clazz)
        create a type with a given name and class or return an existing type if the supplied name and class can be matched. if the type name is qualified ensure that any existing type with an unqualified name matching this entry is not already aliased to another type.
        Parameters:
        name - the type name
        clazz - the associated class
        Returns:
        the type if created or matched or null if there is a class or alias mismatch
      • resolveTypes

        public void resolveTypes()
        try to associate each type in the typegroup with a class
      • checkAlias

        private boolean checkAlias​(Type type)
        if the supplied type has a package qualified name ensure that any existing entry with the unqualified name is aliased to it or else add an entry with an unqualified name as an alias for it. do nothing if the type name is unqualified
        Parameters:
        type - the type to be checked for an alias
        Returns:
        true if the alias type is now or was already in the table or false if no such type can be installed because there is an existing alias to some other type
      • createArray

        public Type createArray​(Type baseType)
      • addExceptionTypes

        public void addExceptionTypes​(java.lang.String[] exceptionTypeNames)
      • getExceptionTypes

        public java.util.List<Type> getExceptionTypes()
      • ensureType

        public Type ensureType​(java.lang.Class clazz)
      • match

        public Type match​(java.lang.String[] path)