@Override
    public void setState(TransferState state) {
        super.setState(state);

        switch (state) {
            case Completed :
                fireProgressEvent(ProgressEventType.TRANSFER_COMPLETED_EVENT);
                break;
            case Canceled:
                fireProgressEvent(ProgressEventType.TRANSFER_CANCELED_EVENT);
                break;
            case Failed:
                fireProgressEvent(ProgressEventType.TRANSFER_FAILED_EVENT);
                break;
            default:
                break;
        }
    }
This method is also responsible for firing COMPLETED signal to the
listeners.
aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/transfer/internal/PresignedUrlDownloadImpl.java