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 proxydelegateTypeFqn- Concrete type FQN — for JoinPoint componentFqndelegateTemp- Variable holding pre-constructed delegate instanceaspectTemps- 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 instancesourceToken- Source location for deterministic proxy namingdebugInfo- Debug information for source mappingforwardsClose- True when the base type OR the delegate's type has a close operator: the proxy then forwards_close()to the delegate, unadvised (the application closes the registered proxy at program end)implementsCloseable- True when only the delegate has a close (the base type does not): the proxy then also implementsorg.ek9.lang::Closeable, the type the application closes it through
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, boolean forwardsClose, boolean implementsCloseable)
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordMethod signature information for proxy class generation. -
Constructor Summary
ConstructorsConstructorDescriptionAspectProxyDetails(String baseTypeFqn, String delegateTypeFqn, String delegateTemp, List<String> aspectTemps, List<String> aspectTypeFqns, List<AspectProxyDetails.ProxyMethodInfo> proxyMethods, String resultVariable, IToken sourceToken, DebugInfo debugInfo, boolean forwardsClose, boolean implementsCloseable) Create aspect proxy details with validation. -
Method Summary
Modifier and TypeMethodDescriptionintGet the number of aspects.Returns the value of theaspectTempsrecord component.Returns the value of theaspectTypeFqnsrecord component.Returns the value of thebaseTypeFqnrecord component.Returns the value of thedebugInforecord component.Returns the value of thedelegateTemprecord component.Returns the value of thedelegateTypeFqnrecord component.final booleanIndicates whether some other object is "equal to" this one.booleanReturns the value of theforwardsCloserecord component.final inthashCode()Returns a hash code value for this object.booleanReturns the value of theimplementsCloseablerecord component.Returns the value of theproxyMethodsrecord component.Returns the value of theresultVariablerecord component.Returns the value of thesourceTokenrecord component.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
AspectProxyDetails
public AspectProxyDetails(String baseTypeFqn, String delegateTypeFqn, String delegateTemp, List<String> aspectTemps, List<String> aspectTypeFqns, List<AspectProxyDetails.ProxyMethodInfo> proxyMethods, String resultVariable, IToken sourceToken, DebugInfo debugInfo, boolean forwardsClose, boolean implementsCloseable) Create aspect proxy details with validation.
-
-
Method Details
-
aspectCount
public int aspectCount()Get the number of aspects. -
toString
-
hashCode
-
equals
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. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
baseTypeFqn
Returns the value of thebaseTypeFqnrecord component.- Returns:
- the value of the
baseTypeFqnrecord component
-
delegateTypeFqn
Returns the value of thedelegateTypeFqnrecord component.- Returns:
- the value of the
delegateTypeFqnrecord component
-
delegateTemp
Returns the value of thedelegateTemprecord component.- Returns:
- the value of the
delegateTemprecord component
-
aspectTemps
Returns the value of theaspectTempsrecord component.- Returns:
- the value of the
aspectTempsrecord component
-
aspectTypeFqns
Returns the value of theaspectTypeFqnsrecord component.- Returns:
- the value of the
aspectTypeFqnsrecord component
-
proxyMethods
Returns the value of theproxyMethodsrecord component.- Returns:
- the value of the
proxyMethodsrecord component
-
resultVariable
Returns the value of theresultVariablerecord component.- Returns:
- the value of the
resultVariablerecord component
-
sourceToken
Returns the value of thesourceTokenrecord component.- Returns:
- the value of the
sourceTokenrecord component
-
debugInfo
-
forwardsClose
public boolean forwardsClose()Returns the value of theforwardsCloserecord component.- Returns:
- the value of the
forwardsCloserecord component
-
implementsCloseable
public boolean implementsCloseable()Returns the value of theimplementsCloseablerecord component.- Returns:
- the value of the
implementsCloseablerecord component
-