Class DescriptorRemapper


  • public class DescriptorRemapper
    extends Object
    Remaps class references within method and field descriptors.
    • Constructor Detail

      • DescriptorRemapper

        public DescriptorRemapper​(Function<String,​String> classMapper)
        Creates a remapper with the given class name mapping function.
        Parameters:
        classMapper - Function that maps old class names to new ones (returns null or same for no change)
      • DescriptorRemapper

        public DescriptorRemapper​(Map<String,​String> classMappings)
        Creates a remapper from a class mapping map.
        Parameters:
        classMappings - Map from old class names to new class names
    • Method Detail

      • remapMethodDescriptor

        public String remapMethodDescriptor​(String descriptor)
        Remaps all class references in a method descriptor.
        Parameters:
        descriptor - The method descriptor (e.g., "(Lcom/old/Type;I)V")
        Returns:
        The remapped descriptor
      • remapFieldDescriptor

        public String remapFieldDescriptor​(String descriptor)
        Remaps all class references in a field descriptor.
        Parameters:
        descriptor - The field descriptor (e.g., "Lcom/old/Type;")
        Returns:
        The remapped descriptor
      • remapType

        public String remapType​(String typeDescriptor)
        Remaps a single type descriptor.
        Parameters:
        typeDescriptor - A single type (e.g., "Lcom/old/Type;", "I", "[Lcom/old/Type;")
        Returns:
        The remapped type descriptor
      • remapClassName

        public String remapClassName​(String className)
        Remaps an internal class name (not a descriptor).
        Parameters:
        className - The internal class name (e.g., "com/old/Type")
        Returns:
        The remapped class name, or the original if no mapping exists
      • needsRemapping

        public boolean needsRemapping​(String descriptor)
        Checks if a descriptor contains any class references that would be remapped.
        Parameters:
        descriptor - The descriptor to check
        Returns:
        true if the descriptor would change after remapping