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

com.qmetric.hal.reader.HalReader Maven / Gradle / Ivy

package com.qmetric.hal.reader;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.theoryinpractise.halbuilder.api.ReadableRepresentation;
import com.theoryinpractise.halbuilder.api.RepresentationFactory;

import java.io.Reader;

/**
 * Hal reader used for reading HAL resources
 */
public class HalReader
{
    private final ObjectMapper objectMapper;

    private final RepresentationFactory representationFactory;

    /**
     * Construct new instance with default com.fasterxml.jackson.databind.ObjectMapper used for parsing HAL resource properties.
     */
    public HalReader()
    {
        this(new ObjectMapper());
    }

    /**
     * Construct new instance with given com.fasterxml.jackson.databind.ObjectMapper used for parsing HAL resource properties.
     * @param objectMapper Jackson object mapper
     */
    public HalReader(final ObjectMapper objectMapper)
    {
        this.objectMapper = objectMapper;
        this.representationFactory = new JsonRepresentationFactory();
    }

    /**
     * Read and return HalResource
     * @param reader Reader
     * @return Hal resource
     */
    public HalResource read(final Reader reader)
    {
        final ReadableRepresentation readableRepresentation = representationFactory.readRepresentation(reader);

        return new HalResource(objectMapper, readableRepresentation);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy