Class SimpleTopLevelLookup.MemberRealm

java.lang.Object
org.stianloader.remapper.SimpleTopLevelLookup.MemberRealm
Enclosing class:
SimpleTopLevelLookup

public static class SimpleTopLevelLookup.MemberRealm extends Object
A member realm is a group of class members (so either fields or methods) with the same name (but not necessarily the same descriptor or signature as it is permissible for subclasses to be more/less strict on what they return or consume) but different classes. They form a unit (here referred as a realm) as they must have the same name in both source and destination namespace, otherwise the method hierarchy may be disjointed, resulting in mapping anomalies which may cause the application to no longer run as intended.

There may be multiple units with the same name, spanning different classes if they never intersect with each other. However, one currently known edge-case (technically a bug)

  • Field Details

    • realmMembers

      @NotNull public final @NotNull @Unmodifiable Set<@NotNull String> realmMembers
      All classes (written as an internal name) where the member is accessible from.
    • rootDefinition

      @NotNull public final @NotNull MemberRef rootDefinition
      The top level declaration of the member realm. In case where two different interfaces might define the same method, then the most frequently used interface is defined as the declarer.
  • Constructor Details

    • MemberRealm

      public MemberRealm(@NotNull @NotNull MemberRef rootDefinition, @NotNull @Unmodifiable @NotNull Set<@NotNull String> realmMembers)
      Parameters:
      rootDefinition - The top level declaration of the member realm.
      realmMembers - The list of all classes in which the member realm is active.
  • Method Details