![JAR search and dependency download from the Maven repository](/logo.png)
graphql.kickstart.execution.instrumentation.FieldLevelTrackingApproach Maven / Gradle / Ivy
package graphql.kickstart.execution.instrumentation;
import graphql.Internal;
import graphql.execution.ExecutionId;
import graphql.execution.instrumentation.InstrumentationState;
import org.dataloader.DataLoaderRegistry;
/**
* This approach uses field level tracking to achieve its aims of making the data loader more
* efficient. Can handle new/concurrent executions using the same sets of dataloaders, attempting to
* batch load calls together.
*/
@Internal
public class FieldLevelTrackingApproach extends AbstractTrackingApproach {
public FieldLevelTrackingApproach(DataLoaderRegistry dataLoaderRegistry) {
super(dataLoaderRegistry);
}
public InstrumentationState createState(ExecutionId executionId) {
synchronized (getStack()) {
if (getStack().contains(executionId)) {
throw new TrackingApproachException(
String.format("Execution id %s already in active execution", executionId));
}
getStack().addExecution(executionId);
return null;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy