parser-java/kvs-archived-media-rekognition-label-detection-sample/src/main/java/com/amazonaws/kinesisvideo/workers/ListFragmentWorker.java [24:90]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@Slf4j
public class ListFragmentWorker extends KinesisVideoCommon implements Callable {
    private final FragmentSelector fragmentSelector;
    private final AmazonKinesisVideoArchivedMedia amazonKinesisVideoArchivedMedia;
    private final long fragmentsPerRequest = 100;

    public ListFragmentWorker(final String streamName,
                              final AWSCredentialsProvider awsCredentialsProvider, final String endPoint,
                              final Regions region,
                              final FragmentSelector fragmentSelector) {
        super(region, awsCredentialsProvider, streamName);
        this.fragmentSelector = fragmentSelector;

        amazonKinesisVideoArchivedMedia = AmazonKinesisVideoArchivedMediaClient
                .builder()
                .withCredentials(awsCredentialsProvider)
                .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, region.getName()))
                .build();
    }

    public static ListFragmentWorker create(final String streamName,
                                            final AWSCredentialsProvider awsCredentialsProvider,
                                            final Regions region,
                                            final AmazonKinesisVideo amazonKinesisVideo,
                                            final FragmentSelector fragmentSelector) {
        final GetDataEndpointRequest request = new GetDataEndpointRequest()
                .withAPIName(APIName.LIST_FRAGMENTS).withStreamName(streamName);
        final String endpoint = amazonKinesisVideo.getDataEndpoint(request).getDataEndpoint();

        return new ListFragmentWorker(
                streamName, awsCredentialsProvider, endpoint, region, fragmentSelector);
    }

    @Override
    public List<String> call() {
        List<String> fragmentNumbers = new ArrayList<>();
        try {
            log.info("Start ListFragment worker on stream {}", streamName);

            ListFragmentsRequest request = new ListFragmentsRequest()
                    .withStreamName(streamName).withFragmentSelector(fragmentSelector).withMaxResults(fragmentsPerRequest);

            ListFragmentsResult result = amazonKinesisVideoArchivedMedia.listFragments(request);


            log.info("List Fragments called on stream {} response {} request ID {}",
                    streamName,
                    result.getSdkHttpMetadata().getHttpStatusCode(),
                    result.getSdkResponseMetadata().getRequestId());

            for (Fragment f : result.getFragments()) {
                fragmentNumbers.add(f.getFragmentNumber());
            }
            String nextToken = result.getNextToken();

            /* If result is truncated, keep making requests until nextToken is empty */
            while (nextToken != null) {
                request = new ListFragmentsRequest()
                        .withStreamName(streamName).withNextToken(nextToken);
                result = amazonKinesisVideoArchivedMedia.listFragments(request);

                for (Fragment f : result.getFragments()) {
                    fragmentNumbers.add(f.getFragmentNumber());
                }
                nextToken = result.getNextToken();
            }
            Collections.sort(fragmentNumbers);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



parser-java/kvs-archived-media-retrieval-sample/src/main/java/com/amazonaws/kinesisvideo/workers/ListFragmentWorker.java [22:88]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@Slf4j
public class ListFragmentWorker extends KinesisVideoCommon implements Callable {
    private final FragmentSelector fragmentSelector;
    private final AmazonKinesisVideoArchivedMedia amazonKinesisVideoArchivedMedia;
    private final long fragmentsPerRequest = 100;

    public ListFragmentWorker(final String streamName,
                              final AWSCredentialsProvider awsCredentialsProvider, final String endPoint,
                              final Regions region,
                              final FragmentSelector fragmentSelector) {
        super(region, awsCredentialsProvider, streamName);
        this.fragmentSelector = fragmentSelector;

        amazonKinesisVideoArchivedMedia = AmazonKinesisVideoArchivedMediaClient
                .builder()
                .withCredentials(awsCredentialsProvider)
                .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, region.getName()))
                .build();
    }

    public static ListFragmentWorker create(final String streamName,
                                            final AWSCredentialsProvider awsCredentialsProvider,
                                            final Regions region,
                                            final AmazonKinesisVideo amazonKinesisVideo,
                                            final FragmentSelector fragmentSelector) {
        final GetDataEndpointRequest request = new GetDataEndpointRequest()
                .withAPIName(APIName.LIST_FRAGMENTS).withStreamName(streamName);
        final String endpoint = amazonKinesisVideo.getDataEndpoint(request).getDataEndpoint();

        return new ListFragmentWorker(
                streamName, awsCredentialsProvider, endpoint, region, fragmentSelector);
    }

    @Override
    public List<String> call() {
        List<String> fragmentNumbers = new ArrayList<>();
        try {
            log.info("Start ListFragment worker on stream {}", streamName);

            ListFragmentsRequest request = new ListFragmentsRequest()
                    .withStreamName(streamName).withFragmentSelector(fragmentSelector).withMaxResults(fragmentsPerRequest);

            ListFragmentsResult result = amazonKinesisVideoArchivedMedia.listFragments(request);


            log.info("List Fragments called on stream {} response {} request ID {}",
                    streamName,
                    result.getSdkHttpMetadata().getHttpStatusCode(),
                    result.getSdkResponseMetadata().getRequestId());

            for (Fragment f : result.getFragments()) {
                fragmentNumbers.add(f.getFragmentNumber());
            }
            String nextToken = result.getNextToken();

            /* If result is truncated, keep making requests until nextToken is empty */
            while (nextToken != null) {
                request = new ListFragmentsRequest()
                        .withStreamName(streamName).withNextToken(nextToken);
                result = amazonKinesisVideoArchivedMedia.listFragments(request);

                for (Fragment f : result.getFragments()) {
                    fragmentNumbers.add(f.getFragmentNumber());
                }
                nextToken = result.getNextToken();
            }
            Collections.sort(fragmentNumbers);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



