
software.amazon.awssdk.services.transcribestreaming.model.StartStreamTranscriptionResponseHandler Maven / Gradle / Ivy
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package software.amazon.awssdk.services.transcribestreaming.model;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.awscore.eventstream.EventStreamResponseHandler;
/**
* Response handler for the StartStreamTranscription API.
*/
@Generated("software.amazon.awssdk:codegen")
@SdkPublicApi
public interface StartStreamTranscriptionResponseHandler extends
EventStreamResponseHandler {
/**
* Create a {@link Builder}, used to create a {@link StartStreamTranscriptionResponseHandler}.
*/
static Builder builder() {
return new DefaultStartStreamTranscriptionResponseHandlerBuilder();
}
/**
* Builder for {@link StartStreamTranscriptionResponseHandler}. This can be used to create the
* {@link StartStreamTranscriptionResponseHandler} in a more functional way, you may also directly implement the
* {@link StartStreamTranscriptionResponseHandler} interface if preferred.
*/
@Generated("software.amazon.awssdk:codegen")
interface Builder extends
EventStreamResponseHandler.Builder {
/**
* Sets the subscriber to the {@link org.reactivestreams.Publisher} of events. The given {@link Visitor} will be
* called for each event received by the publisher. Events are requested sequentially after each event is
* processed. If you need more control over the backpressure strategy consider using
* {@link #subscriber(java.util.function.Supplier)} instead.
*
* @param visitor
* Visitor that will be invoked for each incoming event.
* @return This builder for method chaining
*/
Builder subscriber(Visitor visitor);
/**
* @return A {@link StartStreamTranscriptionResponseHandler} implementation that can be used in the
* StartStreamTranscription API call.
*/
StartStreamTranscriptionResponseHandler build();
}
/**
* Visitor for subtypes of {@link TranscriptResultStream}.
*/
@Generated("software.amazon.awssdk:codegen")
interface Visitor {
/**
* @return A new {@link Builder}.
*/
static Builder builder() {
return new DefaultStartStreamTranscriptionVisitorBuilder();
}
/**
* A required "else" or "default" block, invoked when no other more-specific "visit" method is appropriate. This
* is invoked under two circumstances:
*
* - The event encountered is newer than the current version of the SDK, so no other more-specific "visit"
* method could be called. In this case, the provided event will be a generic {@link TranscriptResultStream}.
* These events can be processed by upgrading the SDK.
* - The event is known by the SDK, but the "visit" was not overridden above. In this case, the provided event
* will be a specific type of {@link TranscriptResultStream}.
*
*
* @param event
* The event that was not handled by a more-specific "visit" method.
*/
default void visitDefault(TranscriptResultStream event) {
}
/**
* Invoked when a {@link TranscriptEvent} is encountered. If this is not overridden, the event will be given to
* {@link #visitDefault(TranscriptResultStream)}.
*
* @param event
* Event being visited
*/
default void visit(TranscriptEvent event) {
visitDefault(event);
}
/**
* Builder for {@link Visitor}. The {@link Visitor} class may also be extended for a more traditional style but
* this builder allows for a more functional way of creating a visitor will callback methods.
*/
@Generated("software.amazon.awssdk:codegen")
interface Builder {
/**
* Callback to invoke when either an unknown event is visited or an unhandled event is visited.
*
* @param c
* Callback to process the event.
* @return This builder for method chaining.
*/
Builder onDefault(Consumer c);
/**
* @return Visitor implementation.
*/
Visitor build();
/**
* Callback to invoke when a {@link TranscriptEvent} is visited.
*
* @param c
* Callback to process the event.
* @return This builder for method chaining.
*/
Builder onTranscriptEvent(Consumer c);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy