test_class.declarator: THINGS_ROUTE = "/things"
test_class.modifier: private static final
test_class.original_string: private static final String THINGS_ROUTE = "/things";
test_class.type: String
test_class.var_name: THINGS_ROUTE
test_class.declarator: SEARCH_ROUTE = "/search/things"
test_class.modifier: private static final
test_class.original_string: private static final String SEARCH_ROUTE = "/search/things";
test_class.type: String
test_class.var_name: SEARCH_ROUTE
test_class.declarator: actorSystem
test_class.modifier: private static
test_class.original_string: private static ActorSystem actorSystem;
test_class.type: ActorSystem
test_class.var_name: actorSystem
test_class.declarator: acceptHeader
test_class.modifier: private static
test_class.original_string: private static HttpHeader acceptHeader;
test_class.type: HttpHeader
test_class.var_name: acceptHeader
test_class.declarator: testName = new TestName()
test_class.modifier: @Rule
      public final
test_class.original_string: @Rule
      public final TestName testName = new TestName();
test_class.type: TestName
test_class.var_name: testName
test_class.declarator: connectionCorrelationId
test_class.modifier: private
test_class.original_string: private String connectionCorrelationId;
test_class.type: String
test_class.var_name: connectionCorrelationId
test_class.declarator: streamingActor
test_class.modifier: private
test_class.original_string: private TestProbe streamingActor;
test_class.type: TestProbe
test_class.var_name: streamingActor
test_class.declarator: underTest
test_class.modifier: private
test_class.original_string: private TestRoute underTest;
test_class.type: TestRoute
test_class.var_name: underTest
test_class.declarator: proxyActor
test_class.modifier: private
test_class.original_string: private TestProbe proxyActor;
test_class.type: TestProbe
test_class.var_name: proxyActor
test_class.file: services/gateway/endpoints/src/test/java/org/eclipse/ditto/services/gateway/endpoints/routes/sse/ThingsSseRouteBuilderTest.java
test_class.identifier: ThingsSseRouteBuilderTest
test_class.superclass: extends EndpointTestBase
test_case.body: @Test
      public void searchWithResumption() {
          final String lastEventId = "my:lastEventId";
          final HttpHeader lastEventIdHeader = HttpHeader.parse("Last-Event-ID", lastEventId);
          final TestRouteResult routeResult = underTest.run(
                  HttpRequest.GET(SEARCH_ROUTE)
                          .addHeader(acceptHeader)
                          .addHeader(lastEventIdHeader)
          );
          final CompletableFuture<Void> assertions =
                  CompletableFuture.runAsync(() -> {
                      routeResult.assertMediaType(MediaTypes.TEXT_EVENT_STREAM);
                      routeResult.assertStatusCode(StatusCodes.OK);
                  });
          final RetrieveThing retrieveThing = proxyActor.expectMsgClass(RetrieveThing.class);
          final Thing thing = Thing.newBuilder().setId(ThingId.of(lastEventId)).build();
          proxyActor.reply(RetrieveThingResponse.of(ThingId.of(lastEventId),
                  thing,
                  retrieveThing.getDittoHeaders()
          ));
          final StreamThings streamThings = proxyActor.expectMsgClass(StreamThings.class);
          replySourceRef(proxyActor, Source.lazily(Source::empty));
          assertions.join();
          assertThat(streamThings.getSortValues()).contains(JsonArray.of(JsonValue.of(lastEventId)));
      }
test_case.class_method_signature: ThingsSseRouteBuilderTest.searchWithResumption()
test_case.full_signature: @Test public void searchWithResumption()
test_case.identifier: searchWithResumption
test_case.invocations: parse run addHeader addHeader GET runAsync assertMediaType assertStatusCode expectMsgClass build setId newBuilder of reply of of getDittoHeaders expectMsgClass replySourceRef lazily join contains assertThat getSortValues of of
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void searchWithResumption()
focal_class.declarator: PATH_SEARCH = "search"
focal_class.modifier: private static final
focal_class.original_string: private static final String PATH_SEARCH = "search";
focal_class.type: String
focal_class.var_name: PATH_SEARCH
focal_class.declarator: PATH_THINGS = "things"
focal_class.modifier: private static final
focal_class.original_string: private static final String PATH_THINGS = "things";
focal_class.type: String
focal_class.var_name: PATH_THINGS
focal_class.declarator: STREAMING_TYPE_SSE = "SSE"
focal_class.modifier: private static final
focal_class.original_string: private static final String STREAMING_TYPE_SSE = "SSE";
focal_class.type: String
focal_class.var_name: STREAMING_TYPE_SSE
focal_class.declarator: LAST_EVENT_ID_HEADER = "Last-Event-ID"
focal_class.modifier: private static final
focal_class.original_string: private static final String LAST_EVENT_ID_HEADER = "Last-Event-ID";
focal_class.type: String
focal_class.var_name: LAST_EVENT_ID_HEADER
focal_class.declarator: PARAM_FILTER = "filter"
focal_class.modifier: private static final
focal_class.original_string: private static final String PARAM_FILTER = "filter";
focal_class.type: String
focal_class.var_name: PARAM_FILTER
focal_class.declarator: PARAM_FIELDS = "fields"
focal_class.modifier: private static final
focal_class.original_string: private static final String PARAM_FIELDS = "fields";
focal_class.type: String
focal_class.var_name: PARAM_FIELDS
focal_class.declarator: PARAM_OPTION = "option"
focal_class.modifier: private static final
focal_class.original_string: private static final String PARAM_OPTION = "option";
focal_class.type: String
focal_class.var_name: PARAM_OPTION
focal_class.declarator: PARAM_NAMESPACES = "namespaces"
focal_class.modifier: private static final
focal_class.original_string: private static final String PARAM_NAMESPACES = "namespaces";
focal_class.type: String
focal_class.var_name: PARAM_NAMESPACES
focal_class.declarator: PARAM_EXTRA_FIELDS = "extraFields"
focal_class.modifier: private static final
focal_class.original_string: private static final String PARAM_EXTRA_FIELDS = "extraFields";
focal_class.type: String
focal_class.var_name: PARAM_EXTRA_FIELDS
focal_class.declarator: ACCEPT_HEADER_EXTRACTOR = newAcceptHeaderExtractor()
focal_class.modifier: private static final
focal_class.original_string: private static final PartialFunction<HttpHeader, Accept> ACCEPT_HEADER_EXTRACTOR = newAcceptHeaderExtractor();
focal_class.type: PartialFunction<HttpHeader, Accept>
focal_class.var_name: ACCEPT_HEADER_EXTRACTOR
focal_class.declarator: THINGS_SSE_COUNTER = getCounterFor(PATH_THINGS)
focal_class.modifier: private static final
focal_class.original_string: private static final Counter THINGS_SSE_COUNTER = getCounterFor(PATH_THINGS);
focal_class.type: Counter
focal_class.var_name: THINGS_SSE_COUNTER
focal_class.declarator: SEARCH_SSE_COUNTER = getCounterFor(PATH_SEARCH)
focal_class.modifier: private static final
focal_class.original_string: private static final Counter SEARCH_SSE_COUNTER = getCounterFor(PATH_SEARCH);
focal_class.type: Counter
focal_class.var_name: SEARCH_SSE_COUNTER
focal_class.declarator: LOCAL_ASK_TIMEOUT = Duration.ofSeconds(5L)
focal_class.modifier: private static final
focal_class.original_string: private static final Duration LOCAL_ASK_TIMEOUT = Duration.ofSeconds(5L);
focal_class.type: Duration
focal_class.var_name: LOCAL_ASK_TIMEOUT
focal_class.declarator: streamingActor
focal_class.modifier: private final
focal_class.original_string: private final ActorRef streamingActor;
focal_class.type: ActorRef
focal_class.var_name: streamingActor
focal_class.declarator: streamingConfig
focal_class.modifier: private final
focal_class.original_string: private final StreamingConfig streamingConfig;
focal_class.type: StreamingConfig
focal_class.var_name: streamingConfig
focal_class.declarator: queryFilterCriteriaFactory
focal_class.modifier: private final
focal_class.original_string: private final QueryFilterCriteriaFactory queryFilterCriteriaFactory;
focal_class.type: QueryFilterCriteriaFactory
focal_class.var_name: queryFilterCriteriaFactory
focal_class.declarator: pubSubMediator
focal_class.modifier: private final
focal_class.original_string: private final ActorRef pubSubMediator;
focal_class.type: ActorRef
focal_class.var_name: pubSubMediator
focal_class.declarator: sseAuthorizationEnforcer
focal_class.modifier: private
focal_class.original_string: private SseAuthorizationEnforcer sseAuthorizationEnforcer;
focal_class.type: SseAuthorizationEnforcer
focal_class.var_name: sseAuthorizationEnforcer
focal_class.declarator: sseConnectionSupervisor
focal_class.modifier: private
focal_class.original_string: private SseConnectionSupervisor sseConnectionSupervisor;
focal_class.type: SseConnectionSupervisor
focal_class.var_name: sseConnectionSupervisor
focal_class.declarator: eventSniffer
focal_class.modifier: private
focal_class.original_string: private EventSniffer<ServerSentEvent> eventSniffer;
focal_class.type: EventSniffer<ServerSentEvent>
focal_class.var_name: eventSniffer
focal_class.declarator: signalEnrichmentProvider
focal_class.modifier: @Nullable
focal_class.original_string: @Nullable GatewaySignalEnrichmentProvider signalEnrichmentProvider;
focal_class.type: GatewaySignalEnrichmentProvider
focal_class.var_name: signalEnrichmentProvider
focal_class.declarator: proxyActor
focal_class.modifier: @Nullable
focal_class.original_string: @Nullable ActorRef proxyActor;
focal_class.type: ActorRef
focal_class.var_name: proxyActor
focal_class.file: services/gateway/endpoints/src/main/java/org/eclipse/ditto/services/gateway/endpoints/routes/sse/ThingsSseRouteBuilder.java
focal_class.identifier: ThingsSseRouteBuilder
focal_class.interfaces: implements SseRouteBuilder
focal_class.class_method_signature: ThingsSseRouteBuilder.ThingsSseRouteBuilder(final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final QueryFilterCriteriaFactory queryFilterCriteriaFactory,
              final ActorRef pubSubMediator)
focal_class.full_signature: private  ThingsSseRouteBuilder(final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final QueryFilterCriteriaFactory queryFilterCriteriaFactory,
              final ActorRef pubSubMediator)
focal_class.identifier: ThingsSseRouteBuilder
focal_class.modifiers: private
focal_class.parameters: (final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final QueryFilterCriteriaFactory queryFilterCriteriaFactory,
              final ActorRef pubSubMediator)
focal_class.signature:  ThingsSseRouteBuilder(final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final QueryFilterCriteriaFactory queryFilterCriteriaFactory,
              final ActorRef pubSubMediator)
focal_class.class_method_signature: ThingsSseRouteBuilder.getInstance(final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final ActorRef pubSubMediator)
focal_class.full_signature: public static ThingsSseRouteBuilder getInstance(final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final ActorRef pubSubMediator)
focal_class.identifier: getInstance
focal_class.modifiers: public static
focal_class.parameters: (final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final ActorRef pubSubMediator)
focal_class.return: ThingsSseRouteBuilder
focal_class.signature: ThingsSseRouteBuilder getInstance(final ActorRef streamingActor,
              final StreamingConfig streamingConfig,
              final ActorRef pubSubMediator)
focal_class.class_method_signature: ThingsSseRouteBuilder.withAuthorizationEnforcer(final SseAuthorizationEnforcer enforcer)
focal_class.full_signature: @Override public SseRouteBuilder withAuthorizationEnforcer(final SseAuthorizationEnforcer enforcer)
focal_class.identifier: withAuthorizationEnforcer
focal_class.modifiers: @Override public
focal_class.parameters: (final SseAuthorizationEnforcer enforcer)
focal_class.return: SseRouteBuilder
focal_class.signature: SseRouteBuilder withAuthorizationEnforcer(final SseAuthorizationEnforcer enforcer)
focal_class.class_method_signature: ThingsSseRouteBuilder.withEventSniffer(final EventSniffer<ServerSentEvent> eventSniffer)
focal_class.full_signature: @Override public ThingsSseRouteBuilder withEventSniffer(final EventSniffer<ServerSentEvent> eventSniffer)
focal_class.identifier: withEventSniffer
focal_class.modifiers: @Override public
focal_class.parameters: (final EventSniffer<ServerSentEvent> eventSniffer)
focal_class.return: ThingsSseRouteBuilder
focal_class.signature: ThingsSseRouteBuilder withEventSniffer(final EventSniffer<ServerSentEvent> eventSniffer)
focal_class.class_method_signature: ThingsSseRouteBuilder.withSseConnectionSupervisor(final SseConnectionSupervisor sseConnectionSupervisor)
focal_class.full_signature: @Override public SseRouteBuilder withSseConnectionSupervisor(final SseConnectionSupervisor sseConnectionSupervisor)
focal_class.identifier: withSseConnectionSupervisor
focal_class.modifiers: @Override public
focal_class.parameters: (final SseConnectionSupervisor sseConnectionSupervisor)
focal_class.return: SseRouteBuilder
focal_class.signature: SseRouteBuilder withSseConnectionSupervisor(final SseConnectionSupervisor sseConnectionSupervisor)
focal_class.class_method_signature: ThingsSseRouteBuilder.withSignalEnrichmentProvider(@Nullable final GatewaySignalEnrichmentProvider provider)
focal_class.full_signature: @Override public SseRouteBuilder withSignalEnrichmentProvider(@Nullable final GatewaySignalEnrichmentProvider provider)
focal_class.identifier: withSignalEnrichmentProvider
focal_class.modifiers: @Override public
focal_class.parameters: (@Nullable final GatewaySignalEnrichmentProvider provider)
focal_class.return: SseRouteBuilder
focal_class.signature: SseRouteBuilder withSignalEnrichmentProvider(@Nullable final GatewaySignalEnrichmentProvider provider)
focal_class.class_method_signature: ThingsSseRouteBuilder.withProxyActor(@Nullable final ActorRef proxyActor)
focal_class.full_signature: @Override public SseRouteBuilder withProxyActor(@Nullable final ActorRef proxyActor)
focal_class.identifier: withProxyActor
focal_class.modifiers: @Override public
focal_class.parameters: (@Nullable final ActorRef proxyActor)
focal_class.return: SseRouteBuilder
focal_class.signature: SseRouteBuilder withProxyActor(@Nullable final ActorRef proxyActor)
focal_class.class_method_signature: ThingsSseRouteBuilder.build(final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.full_signature: @SuppressWarnings("squid:S1172") // allow unused ctx-Param in order to have a consistent route-"interface" @Override public Route build(final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.identifier: build
focal_class.modifiers: @SuppressWarnings("squid:S1172") // allow unused ctx-Param in order to have a consistent route-"interface" @Override public
focal_class.parameters: (final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.return: Route
focal_class.signature: Route build(final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.class_method_signature: ThingsSseRouteBuilder.buildSearchSseRoute(final RequestContext ctx,
              final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.full_signature: private Route buildSearchSseRoute(final RequestContext ctx,
              final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.identifier: buildSearchSseRoute
focal_class.modifiers: private
focal_class.parameters: (final RequestContext ctx,
              final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.return: Route
focal_class.signature: Route buildSearchSseRoute(final RequestContext ctx,
              final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_class.class_method_signature: ThingsSseRouteBuilder.getDittoHeadersWithCorrelationId(final DittoHeaders dittoHeaders)
focal_class.full_signature: private static DittoHeaders getDittoHeadersWithCorrelationId(final DittoHeaders dittoHeaders)
focal_class.identifier: getDittoHeadersWithCorrelationId
focal_class.modifiers: private static
focal_class.parameters: (final DittoHeaders dittoHeaders)
focal_class.return: DittoHeaders
focal_class.signature: DittoHeaders getDittoHeadersWithCorrelationId(final DittoHeaders dittoHeaders)
focal_class.class_method_signature: ThingsSseRouteBuilder.buildThingsSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeaders)
focal_class.full_signature: private Route buildThingsSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeaders)
focal_class.identifier: buildThingsSseRoute
focal_class.modifiers: private
focal_class.parameters: (final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeaders)
focal_class.return: Route
focal_class.signature: Route buildThingsSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeaders)
focal_class.class_method_signature: ThingsSseRouteBuilder.createSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.full_signature: private Route createSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.identifier: createSseRoute
focal_class.modifiers: private
focal_class.parameters: (final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.return: Route
focal_class.signature: Route createSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.class_method_signature: ThingsSseRouteBuilder.createSearchSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.full_signature: private Route createSearchSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.identifier: createSearchSseRoute
focal_class.modifiers: private
focal_class.parameters: (final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.return: Route
focal_class.signature: Route createSearchSseRoute(final RequestContext ctx, final CompletionStage<DittoHeaders> dittoHeadersStage,
              final Map<String, String> parameters)
focal_class.class_method_signature: ThingsSseRouteBuilder.postprocess(final SessionedJsonifiable jsonifiable,
              @Nullable final SignalEnrichmentFacade facade,
              final Collection<ThingId> targetThingIds,
              final Collection<String> namespaces,
              @Nullable final JsonFieldSelector fields)
focal_class.full_signature: private CompletionStage<Collection<JsonObject>> postprocess(final SessionedJsonifiable jsonifiable,
              @Nullable final SignalEnrichmentFacade facade,
              final Collection<ThingId> targetThingIds,
              final Collection<String> namespaces,
              @Nullable final JsonFieldSelector fields)
focal_class.identifier: postprocess
focal_class.modifiers: private
focal_class.parameters: (final SessionedJsonifiable jsonifiable,
              @Nullable final SignalEnrichmentFacade facade,
              final Collection<ThingId> targetThingIds,
              final Collection<String> namespaces,
              @Nullable final JsonFieldSelector fields)
focal_class.return: CompletionStage<Collection<JsonObject>>
focal_class.signature: CompletionStage<Collection<JsonObject>> postprocess(final SessionedJsonifiable jsonifiable,
              @Nullable final SignalEnrichmentFacade facade,
              final Collection<ThingId> targetThingIds,
              final Collection<String> namespaces,
              @Nullable final JsonFieldSelector fields)
focal_class.class_method_signature: ThingsSseRouteBuilder.namespaceMatches(final ThingEvent<?> event, final Collection<String> namespaces)
focal_class.full_signature: private static boolean namespaceMatches(final ThingEvent<?> event, final Collection<String> namespaces)
focal_class.identifier: namespaceMatches
focal_class.modifiers: private static
focal_class.parameters: (final ThingEvent<?> event, final Collection<String> namespaces)
focal_class.return: boolean
focal_class.signature: boolean namespaceMatches(final ThingEvent<?> event, final Collection<String> namespaces)
focal_class.class_method_signature: ThingsSseRouteBuilder.targetThingIdMatches(final ThingEvent<?> event, final Collection<ThingId> targetThingIds)
focal_class.full_signature: private static boolean targetThingIdMatches(final ThingEvent<?> event, final Collection<ThingId> targetThingIds)
focal_class.identifier: targetThingIdMatches
focal_class.modifiers: private static
focal_class.parameters: (final ThingEvent<?> event, final Collection<ThingId> targetThingIds)
focal_class.return: boolean
focal_class.signature: boolean targetThingIdMatches(final ThingEvent<?> event, final Collection<ThingId> targetThingIds)
focal_class.class_method_signature: ThingsSseRouteBuilder.toNonemptyThingJson(final Thing thing, final ThingEvent<?> event,
              @Nullable final JsonFieldSelector fields)
focal_class.full_signature: private static Collection<JsonObject> toNonemptyThingJson(final Thing thing, final ThingEvent<?> event,
              @Nullable final JsonFieldSelector fields)
focal_class.identifier: toNonemptyThingJson
focal_class.modifiers: private static
focal_class.parameters: (final Thing thing, final ThingEvent<?> event,
              @Nullable final JsonFieldSelector fields)
focal_class.return: Collection<JsonObject>
focal_class.signature: Collection<JsonObject> toNonemptyThingJson(final Thing thing, final ThingEvent<?> event,
              @Nullable final JsonFieldSelector fields)
focal_class.class_method_signature: ThingsSseRouteBuilder.getNamespaces(@Nullable final String namespacesParameter)
focal_class.full_signature: private static List<String> getNamespaces(@Nullable final String namespacesParameter)
focal_class.identifier: getNamespaces
focal_class.modifiers: private static
focal_class.parameters: (@Nullable final String namespacesParameter)
focal_class.return: List<String>
focal_class.signature: List<String> getNamespaces(@Nullable final String namespacesParameter)
focal_class.class_method_signature: ThingsSseRouteBuilder.getThingIds(@Nullable final String thingIdString)
focal_class.full_signature: private static List<ThingId> getThingIds(@Nullable final String thingIdString)
focal_class.identifier: getThingIds
focal_class.modifiers: private static
focal_class.parameters: (@Nullable final String thingIdString)
focal_class.return: List<ThingId>
focal_class.signature: List<ThingId> getThingIds(@Nullable final String thingIdString)
focal_class.class_method_signature: ThingsSseRouteBuilder.getFieldSelector(@Nullable final String fieldsString)
focal_class.full_signature: @Nullable private static JsonFieldSelector getFieldSelector(@Nullable final String fieldsString)
focal_class.identifier: getFieldSelector
focal_class.modifiers: @Nullable private static
focal_class.parameters: (@Nullable final String fieldsString)
focal_class.return: JsonFieldSelector
focal_class.signature: JsonFieldSelector getFieldSelector(@Nullable final String fieldsString)
focal_class.class_method_signature: ThingsSseRouteBuilder.namespaceFromId(final ThingEvent<?> thingEvent)
focal_class.full_signature: private static String namespaceFromId(final ThingEvent<?> thingEvent)
focal_class.identifier: namespaceFromId
focal_class.modifiers: private static
focal_class.parameters: (final ThingEvent<?> thingEvent)
focal_class.return: String
focal_class.signature: String namespaceFromId(final ThingEvent<?> thingEvent)
focal_class.class_method_signature: ThingsSseRouteBuilder.newAcceptHeaderExtractor()
focal_class.full_signature: private static PartialFunction<HttpHeader, Accept> newAcceptHeaderExtractor()
focal_class.identifier: newAcceptHeaderExtractor
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: PartialFunction<HttpHeader, Accept>
focal_class.signature: PartialFunction<HttpHeader, Accept> newAcceptHeaderExtractor()
focal_class.class_method_signature: ThingsSseRouteBuilder.matchesTextEventStream(final Accept accept)
focal_class.full_signature: private static boolean matchesTextEventStream(final Accept accept)
focal_class.identifier: matchesTextEventStream
focal_class.modifiers: private static
focal_class.parameters: (final Accept accept)
focal_class.return: boolean
focal_class.signature: boolean matchesTextEventStream(final Accept accept)
focal_class.class_method_signature: ThingsSseRouteBuilder.getCounterFor(final String path)
focal_class.full_signature: private static Counter getCounterFor(final String path)
focal_class.identifier: getCounterFor
focal_class.modifiers: private static
focal_class.parameters: (final String path)
focal_class.return: Counter
focal_class.signature: Counter getCounterFor(final String path)
focal_class.superclass: extends RouteDirectives
focal_method.body: @SuppressWarnings("squid:S1172") // allow unused ctx-Param in order to have a consistent route-"interface"
      @Override
      public Route build(final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier) {
          return concat(
                  rawPathPrefix(PathMatchers.slash().concat(PATH_THINGS),
                          () -> pathEndOrSingleSlash(() -> get(() -> headerValuePF(ACCEPT_HEADER_EXTRACTOR,
                                  accept -> {
                                      final CompletionStage<DittoHeaders> dittoHeadersCompletionStage =
                                              dittoHeadersSupplier.get()
                                                      .thenApply(ThingsSseRouteBuilder::getDittoHeadersWithCorrelationId);
                                      return buildThingsSseRoute(ctx, dittoHeadersCompletionStage);
                                  })))),
                  buildSearchSseRoute(ctx, dittoHeadersSupplier)
          );
      }
focal_method.class_method_signature: ThingsSseRouteBuilder.build(final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_method.full_signature: @SuppressWarnings("squid:S1172") // allow unused ctx-Param in order to have a consistent route-"interface" @Override public Route build(final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_method.identifier: build
focal_method.invocations: concat rawPathPrefix concat slash pathEndOrSingleSlash get headerValuePF thenApply get buildThingsSseRoute buildSearchSseRoute
focal_method.modifiers: @SuppressWarnings("squid:S1172") // allow unused ctx-Param in order to have a consistent route-"interface" @Override public
focal_method.parameters: (final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)
focal_method.return: Route
focal_method.signature: Route build(final RequestContext ctx, final Supplier<CompletionStage<DittoHeaders>> dittoHeadersSupplier)