public static Handler buildDefault()

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());
  }