Class ClassSource

  • All Implemented Interfaces:
    java.io.Serializable, TestSource

    @API(status=STABLE,
         since="1.0")
    public class ClassSource
    extends java.lang.Object
    implements TestSource
    Class based TestSource with an optional file position.

    If a Java Class reference is provided, the ClassSource will contain that Class and its class name accordingly. If a class name is provided, the ClassSource will contain the class name and will only attempt to lazily load the Class if getJavaClass() is invoked.

    In this context, Java Class means anything that can be referenced as a Class on the JVM — for example, classes from other JVM languages such Groovy, Scala, etc.

    Since:
    1.0
    See Also:
    ClassSelector, Serialized Form
    • Method Detail

      • from

        public static ClassSource from​(java.lang.String className)
        Create a new ClassSource using the supplied class name.
        Parameters:
        className - the class name; must not be null or blank
      • from

        public static ClassSource from​(java.lang.String className,
                                       FilePosition filePosition)
        Create a new ClassSource using the supplied class name and file position.
        Parameters:
        className - the class name; must not be null or blank
        filePosition - the position in the source file; may be null
      • from

        public static ClassSource from​(java.lang.Class<?> javaClass)
        Create a new ClassSource using the supplied class.
        Parameters:
        javaClass - the Java class; must not be null
      • from

        public static ClassSource from​(java.lang.Class<?> javaClass,
                                       FilePosition filePosition)
        Create a new ClassSource using the supplied class and file position.
        Parameters:
        javaClass - the Java class; must not be null
        filePosition - the position in the Java source file; may be null
      • getClassName

        public final java.lang.String getClassName()
        Get the class name of this source.
        See Also:
        getJavaClass(), getPosition()
      • getJavaClass

        public final java.lang.Class<?> getJavaClass()
        Get the Java class of this source.

        If the Class was not provided, but only the name, this method attempts to lazily load the Class based on its name and throws a PreconditionViolationException if the class cannot be loaded.

        See Also:
        getClassName(), getPosition()
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object