package org.opentosca.csarrepo.rest.util; import java.net.URI; import java.util.HashMap; import java.util.Map; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; import org.opentosca.csarrepo.rest.model.SimpleXLink; import org.opentosca.csarrepo.rest.resource.CsarListResource; import org.opentosca.csarrepo.rest.resource.CsarResource; import org.opentosca.csarrepo.rest.resource.RootResource; public class LinkBuilder { public static SimpleXLink selfLink(UriInfo uriInfo) { return new SimpleXLink(uriInfo.getAbsolutePath().toString(), "self"); } public static URI linkToCsarList(UriInfo uriInfo) { return uriInfo.getBaseUriBuilder().path(RootResource.class).path(RootResource.class, "getCsars") .build(new Object[0]); } public static URI linkToWineryList(UriInfo uriInfo) { return uriInfo.getBaseUriBuilder().path(RootResource.class).path(RootResource.class, "getWineries") .build(new Object[0]); } public static URI linkToOpenToscaList(UriInfo uriInfo) { return uriInfo.getBaseUriBuilder().path(RootResource.class).path(RootResource.class, "getOpenToscas") .build(new Object[0]); } public static URI linkToCsar(UriInfo uriInfo, long id) { Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("id", Long.toString(id)); return UriBuilder.fromUri(linkToCsarList(uriInfo)).path(CsarListResource.class, "getCsar") .buildFromMap(paramMap); } public static URI linkToCsarFile(UriInfo uriInfo, long csarId, long csarFileId) { Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("id", Long.toString(csarFileId)); return UriBuilder.fromUri(linkToCsar(uriInfo, csarId)).path(CsarResource.class, "getCsarFile") .buildFromMap(paramMap); } public static URI linkToCsarFileDownloadFromCsarFile(UriInfo uriInfo) { return uriInfo.getAbsolutePathBuilder().path("download").build(new Object[0]); } }