package be.drissamri.rest.resource; import be.drissamri.entity.LinkEntity; import javax.ws.rs.core.UriInfo; import java.net.URI; public class LinkResource extends Resource { public LinkResource(UriInfo uri, LinkEntity link) { super(uri, link.getHash()); put("url", link.getUrl()); put("hash", link.getHash()); put("shortUrl", buildUrl(uri, link.getHash())); } private String buildUrl(UriInfo context, String hash) { final URI uri = context.getAbsolutePath(); final StringBuilder url = new StringBuilder(); url.append(uri.getScheme()); url.append("://"); url.append(uri.getHost()); final int port = uri.getPort(); if (port != -1) { url.append(":"); url.append(uri.getPort()); } url.append(uri.getPath().substring(0, uri.getPath().lastIndexOf('/') + 1)); url.append(hash); return url.toString(); } }