Package org.codehaus.groovy.ast

# 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
  `GenericsTypeName(String name)`
  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.
  `String`
  `getName()`
  Returns the generic type name.
  `int`
  `hashCode()`
  Returns the hash code based on the type name.
  `String`
  `toString()`
  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