Class TypeGroup

java.lang.Object
org.jboss.byteman.rule.type.TypeGroup

public class TypeGroup extends Object
the collection of types associated with an ECA rule
  • Field Details

  • Constructor Details

    • TypeGroup

      public TypeGroup(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 Details

    • lookup

      public Type lookup(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(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(String name, 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(String[] exceptionTypeNames)
    • getExceptionTypes

      public List<Type> getExceptionTypes()
    • ensureType

      public Type ensureType(Class clazz)
    • match

      public Type match(String[] path)