Class LambdaDump

    • Field Detail

      • capturedArgs

        protected List<Object> capturedArgs
      • serializableLambdaCache

        public final transient Map<Serializable,​SerializedLambda> serializableLambdaCache
        кеш лямбда / сериализованная форма
      • lambdaNodeCache

        public final transient Map<SerializedLambda,​LambdaNode> lambdaNodeCache
        кеш сериализованная лямбда / корневой узел байт кода
      • cacheSerializedLambda

        protected boolean cacheSerializedLambda
      • classByteCodeCache

        public final transient Map<Class<?>,​Map<String,​CBegin>> classByteCodeCache
        кеш байт кода
    • Constructor Detail

      • LambdaDump

        public LambdaDump()
    • Method Detail

      • getCapturedArgs

        public List<Object> getCapturedArgs()
      • setCapturedArgs

        public void setCapturedArgs​(List<Object> ls)
      • getLambdaNode

        public LambdaNode getLambdaNode()
      • setLambdaNode

        public void setLambdaNode​(LambdaNode node)
      • dump

        public LambdaDump dump​(xyz.cofe.fn.Fn1<?,​?> fn)
        Создание дампа лямбды
        Parameters:
        fn - лямбда
        Returns:
        дамп
      • invalidateCache

        public void invalidateCache()
        Очистка кэша
      • onSerializedLambda

        protected void onSerializedLambda​(SerializedLambda sl)
      • onLambdaNode

        protected void onLambdaNode​(LambdaNode ln)
      • isCacheSerializedLambda

        public boolean isCacheSerializedLambda()
      • setCacheSerializedLambda

        public void setCacheSerializedLambda​(boolean v)
      • dumpSLambda

        protected LambdaDump dumpSLambda​(Serializable serializableLambda)
        создание дампа лямбды
        Parameters:
        serializableLambda - лямбда
        Returns:
        дамп
      • serializedLambda

        protected SerializedLambda serializedLambda​(Serializable lambda)
        получение сералиазованной лямбды
        Parameters:
        lambda - лямбда
        Returns:
        сериализованная лямбда
      • classByteCode

        protected CBegin classByteCode​(Class<?> baseClass,
                                       String clazz)
                                throws IOException
        получение байт кода класса
        Parameters:
        baseClass - класс для доступа к ресурсам (*.class)
        clazz - целевой класс, чей байт код интересует
        Returns:
        байт код
        Throws:
        IOException - ошибка чтение байт кода
      • lambdaNode

        protected LambdaNode lambdaNode​(Class<?> baseClass,
                                        String implClass,
                                        String methName,
                                        String methSign)
        Создание узла для байт кода лямбды и связанных лямбд
        Parameters:
        baseClass - класс для доступа к ресурсам (*.class)
        implClass - класс содержащий код лямбды
        methName - имя метода класса содержащий код лямбды
        methSign - сигнатура метода класса содержащий код лямбды
        Returns:
        узел для лямбды и связанных лямбд
      • restore

        public LambdaDump.Restore restore()
        Восстановление класса
        Returns:
        восстановление