com.theoryinpractise.halbuilder.api.RepresentationFactory Maven / Gradle / Ivy
package com.theoryinpractise.halbuilder.api;
import java.io.Reader;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Set;
public abstract class RepresentationFactory {
public static final String HAL_XML = "application/hal+xml";
public static final String HAL_JSON = "application/hal+json";
public static final URI PRETTY_PRINT = makeUri("urn:halbuilder:prettyprint");
public static final URI COALESCE_LINKS = makeUri("urn:halbuilder:coalescelinks");
protected static URI makeUri(String uri) {
try {
return new URI(uri);
} catch (URISyntaxException e) {
throw new RepresentationException(e);
}
}
public abstract RepresentationFactory withNamespace(String namespace, String url);
public abstract RepresentationFactory withLink(String url, String rel);
public abstract RepresentationFactory withFlag(URI flag);
public abstract Representation newRepresentation(URI uri);
public abstract Representation newRepresentation();
public abstract Representation newRepresentation(String href);
public abstract ReadableRepresentation readRepresentation(Reader reader);
public abstract RepresentationWriter lookupRenderer(String contentType);
public abstract Set getFlags();
}