Class ClassUtils


  • public class ClassUtils
    extends Object
    Utilities for working with class, field, or method information.
    Author:
    Dennis M. Sosnoski
    • Constructor Detail

      • ClassUtils

        public ClassUtils()
    • Method Detail

      • isPrimitive

        public static boolean isPrimitive​(String type)
        Check if type name is a primitive.
        Parameters:
        type - Type
        Returns:
        true if a primitive, false if not
      • findVirtualMethod

        public static IClassItem findVirtualMethod​(String name,
                                                   String[] sigs,
                                                   ValidationContext vctx)
        Get virtual method by fully qualified name. This splits the class name from the method name, finds the class, and then tries to find a matching method name in that class or a superclass.
        Parameters:
        name - fully qualified class and method name
        sigs - possible method signatures
        vctx - validation context (used for class lookup)
        Returns:
        information for the method, or null if not found
      • findStaticMethod

        public static IClassItem findStaticMethod​(String name,
                                                  String[] sigs,
                                                  ValidationContext vctx)
        Get static method by fully qualified name. This splits the class name from the method name, finds the class, and then tries to find a matching method name in that class.
        Parameters:
        name - fully qualified class and method name
        sigs - possible method signatures
        vctx - validation context (used for class lookup)
        Returns:
        information for the method, or null if not found
      • getSignatureVariants

        public static String[] getSignatureVariants​(String name,
                                                    ValidationContext vctx)
        Get all variant signatures for a fully qualified class name. The returned array gives all signatures (for interfaces or classes) which instances of the class can match.
        Parameters:
        name - fully qualified class name
        vctx - validation context (used for class lookup)
        Returns:
        possible signature variations for instances of the class
      • getSignature

        public static String getSignature​(String type)
        Gets the signature string corresponding to a type. The base for the type may be a primitive or class name, and may include trailing array brackets.
        Parameters:
        type - type name
        Returns:
        signature string for type
      • isAssignable

        public static boolean isAssignable​(String from,
                                           String to,
                                           ValidationContext vctx)
        Check if a value of one type can be directly assigned to another type. This is basically the equivalent of the instanceof operator, but with application to primitive types as well as object types.
        Parameters:
        from - fully qualified class name of initial type
        to - fully qualified class name of assignment type
        vctx - validation context (used for class lookup)
        Returns:
        true if assignable, false if not