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

no.nav.common.abac.XacmlMapper Maven / Gradle / Ivy

The newest version!
package no.nav.common.abac;

import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import no.nav.common.abac.domain.request.XacmlRequest;
import no.nav.common.abac.domain.response.*;

import java.lang.reflect.Type;
import java.util.List;

public class XacmlMapper {
    private static final Gson gsonUnserialize;
    private static final Gson gsonSerialize;

    static {
        Type responseType = new TypeToken>(){}.getType();
        Type associatedAdviceType = new TypeToken>(){}.getType();
        Type attributeAssignmentType = new TypeToken>(){}.getType();
        Type categoryType = new TypeToken>(){}.getType();

        gsonUnserialize = new GsonBuilder()
                .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
                .setPrettyPrinting()
                .registerTypeAdapter(responseType, new ResponseTypeAdapter())
                .registerTypeAdapter(associatedAdviceType, new AssociatedAdviceTypeAdapter())
                .registerTypeAdapter(attributeAssignmentType, new AttributeAssignmentTypeAdapter())
                .registerTypeAdapter(categoryType, new CategoryTypeAdapter())
                .create();

        gsonSerialize = new GsonBuilder()
                .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
                .setPrettyPrinting()
                .create();
    }

    public static XacmlResponse mapRawResponse(String content) {
        return gsonUnserialize.fromJson(content, XacmlResponse.class);
    }

    public static String mapRequestToEntity(XacmlRequest request) {
        return gsonSerialize.toJson(request);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy