All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.robertograham.fortnite2.xmpp.implementation.JsonToOptionalOfClassParser Maven / Gradle / Ivy

package io.github.robertograham.fortnite2.xmpp.implementation;

import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
import javax.json.bind.JsonbConfig;
import javax.json.bind.adapter.JsonbAdapter;
import java.util.Optional;

enum JsonToOptionalOfClassParser {

    INSTANCE(
        DefaultSession.Adapter.INSTANCE
    );

    private final Jsonb jsonb;

    JsonToOptionalOfClassParser(final JsonbAdapter... jsonbAdapters) {
        jsonb = JsonbBuilder.create(new JsonbConfig()
            .withAdapters(jsonbAdapters));
    }

     Optional parseJsonToOptionalOfClass(final Class tClass, final String jsonString) {
        return Optional.ofNullable(jsonString)
            .filter(nonNullJsonString -> !nonNullJsonString.isBlank())
            .map(nonNullNonEmptyJsonString -> jsonb.fromJson(nonNullNonEmptyJsonString, tClass));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy