Class JavaTransitiveInstancesKey

java.lang.Object
tools.refinery.interpreter.matchers.context.common.BaseInputKeyWrapper<String>
tools.refinery.interpreter.matchers.context.common.JavaTransitiveInstancesKey
All Implemented Interfaces:
IInputKey

public class JavaTransitiveInstancesKey extends BaseInputKeyWrapper<String>
Instance tuples are of form (x), where object x is an instance of the given Java class or its subclasses.

Fine print 1: classes with the same name are considered equivalent. Can be instantiated with class name, even if the class itself is not loaded yet; but if the class is available, passing it in the constructor is beneficial to avoid classloading troubles.

Fine print 2: primitive types (char, etc.) are transparently treated as their wrapper class (Character, etc.).

Non-enumerable type, can only be checked.

Stateless type (objects can't change their type)

  • Constructor Details

    • JavaTransitiveInstancesKey

      public JavaTransitiveInstancesKey(Class<?> instanceClass)
      Preferred constructor.
    • JavaTransitiveInstancesKey

      public JavaTransitiveInstancesKey(String className)
      Call this constructor only in contexts where the class itself is not available for loading, e.g. it has not yet been compiled.
  • Method Details

    • forceGetWrapperInstanceClass

      public Class<?> forceGetWrapperInstanceClass() throws ClassNotFoundException
      Returns:
      non-null instance class, wrapped if primitive class
      Throws:
      ClassNotFoundException
    • forceGetInstanceClass

      public Class<?> forceGetInstanceClass() throws ClassNotFoundException
      Returns:
      non-null instance class, wrapped if primitive class
      Throws:
      ClassNotFoundException
    • getWrapperInstanceClass

      public Class<?> getWrapperInstanceClass()
      Returns:
      instance class, wrapped if primitive class, null if class cannot be loaded
    • getInstanceClass

      public Class<?> getInstanceClass()
      Returns:
      instance class, wrapped if primitive class, null if class cannot be loaded
    • getPrettyPrintableName

      public String getPrettyPrintableName()
      Description copied from interface: IInputKey
      A user-friendly name that can be shown on screen for debug purposes, included in exceptions, etc.
    • getStringID

      public String getStringID()
      Description copied from interface: IInputKey
      An internal string identifier that can be used to uniquely identify to input key (relevant for distributed applications).
    • getArity

      public int getArity()
      Description copied from interface: IInputKey
      The width of tuples in this relation.
    • isEnumerable

      public boolean isEnumerable()
      Description copied from interface: IInputKey
      Returns true iff instance tuples of the key can be enumerated.

      If false, the runtime can only test tuple membership in the extensional relation identified by the key, but not enumerate member tuples in general.

    • toString

      public String toString()
      Overrides:
      toString in class Object