Package org.stianloader.remapper

# 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 Summary

Fields
Modifier and Type
Field
Description
`final @NotNull @Unmodifiable Set<@NotNull String>`
`realmMembers`
All classes (written as an `internal name`) where the member is accessible from.
`final @NotNull MemberRef`
`rootDefinition`
The top level declaration of the member realm.

## Constructor Summary

Constructors
Constructor
Description
`MemberRealm(@NotNull MemberRef rootDefinition, @Unmodifiable @NotNull Set<@NotNull String> realmMembers)`
Create a `SimpleTopLevelLookup.MemberRealm` with the supplied `rootDefinition` and `realmMembers`.

## Method Summary

Modifier and Type
Method
Description
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## 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)
Create a `SimpleTopLevelLookup.MemberRealm` with the supplied `rootDefinition` and `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

### toString

public String toString()

Overrides:
  `toString` in class `Object`