public InstrumentationContext<Object> beginFieldFetch(InstrumentationFieldFetchParameters parameters) { CallStack callStack = parameters.getInstrumentationState(); ExecutionPath path = parameters.getEnvironment().getExecutionStepInfo().getPath(); int level = path.getLevel(); return new InstrumentationContext<Object>() { @Override public void onDispatched(CompletableFuture result) { boolean dispatchNeeded; synchronized (callStack) { callStack.increaseFetchCount(level); dispatchNeeded = dispatchIfNeeded(callStack, level); } if (dispatchNeeded) { dispatch(); } } @Override public void onCompleted(Object result, Throwable t) { } }; }
DeferredFieldInstrumentationContext beginDeferredField(InstrumentationDeferredFieldParameters parameters) { CallStack callStack = parameters.getInstrumentationState(); int level = parameters.getExecutionStrategyParameters().getPath().getLevel(); synchronized (callStack) { callStack.clearAndMarkCurrentLevelAsReady(level); } return new DeferredFieldInstrumentationContext() { @Override public void onDispatched(CompletableFuture<ExecutionResult> result) { } @Override public void onCompleted(ExecutionResult result, Throwable t) { } @Override public void onFieldValueInfo(FieldValueInfo fieldValueInfo) { boolean dispatchNeeded; synchronized (callStack) { dispatchNeeded = handleOnFieldValuesInfo(Collections.singletonList(fieldValueInfo), callStack, level); } if (dispatchNeeded) { dispatch(); } } }; }
ExecutionStrategyInstrumentationContext beginExecutionStrategy(InstrumentationExecutionStrategyParameters parameters) { CallStack callStack = parameters.getInstrumentationState(); ExecutionPath path = parameters.getExecutionStrategyParameters().getPath(); int parentLevel = path.getLevel(); int curLevel = parentLevel + 1; int fieldCount = parameters.getExecutionStrategyParameters().getFields().size();
public InstrumentationContext<Object> beginFieldFetch(InstrumentationFieldFetchParameters parameters) { CallStack callStack = parameters.getInstrumentationState(); ExecutionPath path = parameters.getEnvironment().getExecutionStepInfo().getPath(); int level = path.getLevel(); return new InstrumentationContext<Object>() { @Override public void onDispatched(CompletableFuture result) { boolean dispatchNeeded; synchronized (callStack) { callStack.increaseFetchCount(level); dispatchNeeded = dispatchIfNeeded(callStack, level); } if (dispatchNeeded) { dispatch(); } } @Override public void onCompleted(Object result, Throwable t) { } }; }
DeferredFieldInstrumentationContext beginDeferredField(InstrumentationDeferredFieldParameters parameters) { CallStack callStack = parameters.getInstrumentationState(); int level = parameters.getExecutionStrategyParameters().getPath().getLevel(); synchronized (callStack) { callStack.clearAndMarkCurrentLevelAsReady(level); } return new DeferredFieldInstrumentationContext() { @Override public void onDispatched(CompletableFuture<ExecutionResult> result) { } @Override public void onCompleted(ExecutionResult result, Throwable t) { } @Override public void onFieldValueInfo(FieldValueInfo fieldValueInfo) { boolean dispatchNeeded; synchronized (callStack) { dispatchNeeded = handleOnFieldValuesInfo(Collections.singletonList(fieldValueInfo), callStack, level); } if (dispatchNeeded) { dispatch(); } } }; }
ExecutionStrategyInstrumentationContext beginExecutionStrategy(InstrumentationExecutionStrategyParameters parameters) { CallStack callStack = parameters.getInstrumentationState(); ExecutionPath path = parameters.getExecutionStrategyParameters().getPath(); int parentLevel = path.getLevel(); int curLevel = parentLevel + 1; int fieldCount = parameters.getExecutionStrategyParameters().getFields().size();