Class GenericsType.GenericsTypeName

java.lang.Object
org.codehaus.groovy.ast.GenericsType.GenericsTypeName
Enclosing class:
GenericsType

public static class GenericsType.GenericsTypeName extends Object
Represents the name of a GenericsType for use as a map key or in generic type comparisons. This inner class provides value-based equality and hashing for generic type name matching.

TODO: In order to distinguish GenericsType with same name, we should add a property to keep the declaring class.

  1. change the signature of constructor GenericsTypeName to `GenericsTypeName(String name, ClassNode declaringClass)`
  2. try to fix all compilation errors(if `GenericsType` has declaringClass property, the step would be a bit easy to fix...)
  3. run all tests to see whether the change breaks anything
  4. if all tests pass, congratulations! but if some tests are broken, try to debug and find why...
We should find a way to set declaring class for `GenericsType` first, it can be completed at the resolving phase.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a generics type name with the specified string.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object that)
    Compares this GenericsTypeName with another object for equality based on the type name.
    Returns the generic type name.
    int
    Returns the hash code based on the type name.
    Returns the string representation of this generics type name.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • GenericsTypeName

      public GenericsTypeName(String name)
      Creates a generics type name with the specified string.
      Parameters:
      name - the generic type name (never null)
      Throws:
      NullPointerException - if name is null
  • Method Details

    • getName

      public String getName()
      Returns the generic type name.
      Returns:
      the name
    • equals

      public boolean equals(Object that)
      Compares this GenericsTypeName with another object for equality based on the type name.
      Overrides:
      equals in class Object
      Parameters:
      that - the object to compare with
      Returns:
      true if both objects are GenericsTypeNames with equal names
    • hashCode

      public int hashCode()
      Returns the hash code based on the type name.
      Overrides:
      hashCode in class Object
      Returns:
      the hash code
    • toString

      public String toString()
      Returns the string representation of this generics type name.
      Overrides:
      toString in class Object
      Returns:
      the name