Package xyz.cofe.trambda
Class LambdaDump
- java.lang.Object
-
- xyz.cofe.trambda.LambdaDump
-
- All Implemented Interfaces:
Serializable
public class LambdaDump extends Object implements Serializable
Дамп лямбды- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLambdaDump.RestoreВосстановление класса
-
Field Summary
Fields Modifier and Type Field Description protected booleancacheSerializedLambdaprotected List<Object>capturedArgsMap<Class<?>,Map<String,CBegin>>classByteCodeCacheкеш байт кодаprotected LambdaNodelambdaNodeMap<SerializedLambda,LambdaNode>lambdaNodeCacheкеш сериализованная лямбда / корневой узел байт кодаprotected Map<MHandle,LambdaNode>refsMap<Serializable,SerializedLambda>serializableLambdaCacheкеш лямбда / сериализованная форма
-
Constructor Summary
Constructors Constructor Description LambdaDump()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected CBeginclassByteCode(Class<?> baseClass, String clazz)получение байт кода классаLambdaDumpconfigure(Consumer<LambdaDump> conf)static voiddump(Consumer<String> log, ByteCode byteCode)LambdaDumpdump(xyz.cofe.fn.Fn1<?,?> fn)Создание дампа лямбдыprotected LambdaDumpdumpSLambda(Serializable serializableLambda)создание дампа лямбдыList<Object>getCapturedArgs()LambdaNodegetLambdaNode()voidinvalidateCache()Очистка кэшаbooleanisCacheSerializedLambda()protected LambdaNodelambdaNode(Class<?> baseClass, String implClass, String methName, String methSign)Создание узла для байт кода лямбды и связанных лямбдprotected voidonLambdaNode(LambdaNode ln)protected voidonSerializedLambda(SerializedLambda sl)LambdaDump.Restorerestore()Восстановление классаprotected SerializedLambdaserializedLambda(Serializable lambda)получение сералиазованной лямбдыvoidsetCacheSerializedLambda(boolean v)voidsetCapturedArgs(List<Object> ls)voidsetLambdaNode(LambdaNode node)
-
-
-
Field Detail
-
lambdaNode
protected LambdaNode lambdaNode
-
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
кеш байт кода
-
refs
protected final transient Map<MHandle,LambdaNode> refs
-
-
Method Detail
-
configure
public LambdaDump configure(Consumer<LambdaDump> conf)
-
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:
- восстановление
-
-