Class LambdaDump.Restore

  • Enclosing class:
    LambdaDump

    public static class LambdaDump.Restore
    extends Object
    Восстановление класса
    • Constructor Detail

    • Method Detail

      • className

        public JavaClassName className()
        Возвращает имя генерируемого класса
        Returns:
        имя генерируемого класса
      • className

        public LambdaDump.Restore className​(String name)
        Указывает имя генерируемого класса
        Parameters:
        name - имя генерируемого класса
        Returns:
        SELF ссылка
      • className

        public LambdaDump.Restore className​(JavaClassName name)
        Указывает имя генерируемого класса
        Parameters:
        name - имя генерируемого класса
        Returns:
        SELF ссылка
      • rootMethodName

        public String rootMethodName()
        Возвращает имя метода который содержит реализацию лямбды
        Returns:
        имя root метода
      • rootMethodName

        public LambdaDump.Restore rootMethodName​(String name)
        Указывает имя метода который содержит реализацию лямбды
        Parameters:
        name - имя root метода
        Returns:
        SELF ссылка
      • classByteCode

        public CBegin classByteCode​(Consumer<xyz.cofe.fn.Tuple2<CBegin,​CMethod>> rootConsumer)
        Генерирует класс (байт-код).
        • Создает класс с набором статичных методов которые представляют из себя лямбды
        • Имя класса задано через className(), className(JavaClassName)
        • Имя статического метода соответ. корневой лямбде задано как "_root_", см rootMethodName(String)
        • Для зависимых лямбд:
          • Производится обход дерева LambdaNode и создается карта relinkMap
          • По байт коду методов находятся все вызовы (случаи MInvokeDynamicInsn) на целевые (relinkMap)
          • Найденные вызовы заменяются в целевые вызовы
        Parameters:
        rootConsumer - (возможно null) получает класс/метод
        Returns:
        класс
      • classLoader

        public xyz.cofe.fn.Fn1<CBegin,​ClassLoader> classLoader()
        Возвращает функцию создания ClassLoader для класса
        Returns:
        создание classLoader
      • classLoader

        public LambdaDump.Restore classLoader​(xyz.cofe.fn.Fn1<CBegin,​ClassLoader> cl)
        Указывает функцию создания ClassLoader для класса
        Parameters:
        cl - создание classLoader
        Returns:
        SELF ссылка
      • restoreClass

        public Class<?> restoreClass​(Consumer<CMethod> rootMethodConsumer)
        Генерация класса.
        Parameters:
        rootMethodConsumer - (Может быть null), получает ссылку на корневую лямбду
        Returns:
        класс
      • method

        public Method method()
        Возвращает метод соответствующий корневой лямбде
        Returns:
        метод