in nullaway/src/main/java/com/uber/nullaway/handlers/Handlers.java [44:86]
public static Handler buildDefault(Config config) {
ImmutableList.Builder<Handler> handlerListBuilder = ImmutableList.builder();
final MethodNameUtil methodNameUtil = new MethodNameUtil();
if (config.acknowledgeRestrictiveAnnotations()) {
// This runs before LibraryModelsHandler, so that library models can override third-party
// bytecode annotations
handlerListBuilder.add(new RestrictiveAnnotationHandler(config));
}
if (config.isJarInferEnabled()) {
handlerListBuilder.add(new InferredJARModelsHandler(config));
}
if (config.handleTestAssertionLibraries()) {
handlerListBuilder.add(new AssertionHandler(methodNameUtil));
}
handlerListBuilder.add(new GuavaAssertionsHandler());
LibraryModelsHandler libraryModelsHandler = new LibraryModelsHandler(config);
handlerListBuilder.add(libraryModelsHandler);
handlerListBuilder.add(StreamNullabilityPropagatorFactory.getRxStreamNullabilityPropagator());
handlerListBuilder.add(StreamNullabilityPropagatorFactory.getJavaStreamNullabilityPropagator());
handlerListBuilder.add(
StreamNullabilityPropagatorFactory.fromSpecs(
libraryModelsHandler.getStreamNullabilitySpecs()));
handlerListBuilder.add(new ContractHandler(config));
handlerListBuilder.add(new ApacheThriftIsSetHandler());
handlerListBuilder.add(new GrpcHandler());
handlerListBuilder.add(new RequiresNonNullHandler());
handlerListBuilder.add(new EnsuresNonNullHandler());
if (config.serializationIsActive() && config.getSerializationConfig().fieldInitInfoEnabled) {
handlerListBuilder.add(
new FieldInitializationSerializationHandler(config.getSerializationConfig()));
}
if (config.checkOptionalEmptiness()) {
handlerListBuilder.add(new OptionalEmptinessHandler(config, methodNameUtil));
}
if (config.checkContracts()) {
handlerListBuilder.add(new ContractCheckHandler(config));
}
handlerListBuilder.add(new LombokHandler(config));
handlerListBuilder.add(new FluentFutureHandler(config));
return new CompositeHandler(handlerListBuilder.build());
}