Record Class AspectProxyDetails

java.lang.Object
java.lang.Record
org.ek9lang.compiler.ir.data.AspectProxyDetails
Record Components:
baseTypeFqn - The 'as' type FQN — determines which methods to proxy
delegateTypeFqn - Concrete type FQN — for JoinPoint componentFqn
delegateTemp - Variable holding pre-constructed delegate instance
aspectTemps - Variables holding pre-constructed aspect instances (in registration order)
aspectTypeFqns - FQNs of aspect types (for field declarations in proxy class)
proxyMethods - Method signatures to proxy (populated from base type during IR generation)
resultVariable - Variable to store the proxy instance
sourceToken - Source location for deterministic proxy naming
debugInfo - Debug information for source mapping

public record AspectProxyDetails(String baseTypeFqn, String delegateTypeFqn, String delegateTemp, List<String> aspectTemps, List<String> aspectTypeFqns, List<AspectProxyDetails.ProxyMethodInfo> proxyMethods, String resultVariable, IToken sourceToken, DebugInfo debugInfo) extends Record
Details for the CREATE_ASPECT_PROXY IR instruction.

Contains all information needed by backends to generate a synthetic proxy class that wraps a delegate component with ordered aspect instances for AOP weaving.

  • Constructor Details

  • Method Details

    • aspectCount

      public int aspectCount()
      Get the number of aspects.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • baseTypeFqn

      public String baseTypeFqn()
      Returns the value of the baseTypeFqn record component.
      Returns:
      the value of the baseTypeFqn record component
    • delegateTypeFqn

      public String delegateTypeFqn()
      Returns the value of the delegateTypeFqn record component.
      Returns:
      the value of the delegateTypeFqn record component
    • delegateTemp

      public String delegateTemp()
      Returns the value of the delegateTemp record component.
      Returns:
      the value of the delegateTemp record component
    • aspectTemps

      public List<String> aspectTemps()
      Returns the value of the aspectTemps record component.
      Returns:
      the value of the aspectTemps record component
    • aspectTypeFqns

      public List<String> aspectTypeFqns()
      Returns the value of the aspectTypeFqns record component.
      Returns:
      the value of the aspectTypeFqns record component
    • proxyMethods

      public List<AspectProxyDetails.ProxyMethodInfo> proxyMethods()
      Returns the value of the proxyMethods record component.
      Returns:
      the value of the proxyMethods record component
    • resultVariable

      public String resultVariable()
      Returns the value of the resultVariable record component.
      Returns:
      the value of the resultVariable record component
    • sourceToken

      public IToken sourceToken()
      Returns the value of the sourceToken record component.
      Returns:
      the value of the sourceToken record component
    • debugInfo

      public DebugInfo debugInfo()
      Returns the value of the debugInfo record component.
      Returns:
      the value of the debugInfo record component