class OAuthBearerClientInitialResponse {

    public byte[] toBytes() {
        String authzid = authorizationId.isEmpty() ? "" : "a=" + authorizationId;
        String extensions = extensionsMessage();
        if (extensions.length() > 0)
            extensions = SEPARATOR + extensions;

        String message = String.format("n,%s,%sauth=Bearer %s%s%s%s", authzid,
                SEPARATOR, tokenValue, extensions, SEPARATOR, SEPARATOR);

        return message.getBytes(StandardCharsets.UTF_8);
    }

    public  OAuthBearerClientInitialResponse(byte[] response);
    public  OAuthBearerClientInitialResponse(String tokenValue, SaslExtensions extensions);
    public  OAuthBearerClientInitialResponse(String tokenValue, String authorizationId, SaslExtensions extensions);

}