public static CategoryDTO toDTO(Category category, UriInfo uriInfo) {
   CategoryDTO dto = new CategoryDTO();
   dto.id = category.getId();
   dto.name = category.getName();
   Collection<ServiceLink> ls =
       new LinkedServiceBuilder()
           .add("GET", "GET", UriBuilderUtil.getCategory(uriInfo, dto.id))
           .add("INSERT", "PUT", UriBuilderUtil.insertCategory(uriInfo))
           .add("UPDATE", "POST", UriBuilderUtil.updateCategory(uriInfo, dto.id))
           .add("DELETE", "DELETE", UriBuilderUtil.deleteCategory(uriInfo, dto.id))
           .add(
               "INSERT-IN",
               "PUT",
               UriBuilderUtil.insertProductForCategory(uriInfo.getBaseUriBuilder(), dto.id))
           .build();
   dto.links = ls;
   return dto;
 }
 public static CategoryProductsDTO toCategoryProductsDTO(Category category, UriInfo uriInfo) {
   CategoryProductsDTO dto = new CategoryProductsDTO();
   dto.id = category.getId();
   dto.name = category.getName();
   Collection<ServiceLink> ls =
       new LinkedServiceBuilder()
           .add("GET", "GET", UriBuilderUtil.getCategory(uriInfo, dto.id))
           .add("INSERT", "PUT", UriBuilderUtil.insertCategory(uriInfo))
           .add("UPDATE", "POST", UriBuilderUtil.updateCategory(uriInfo, dto.id))
           .add("DELETE", "DELETE", UriBuilderUtil.deleteCategory(uriInfo, dto.id))
           .add(
               "INSERT-IN",
               "PUT",
               UriBuilderUtil.insertProductForCategory(uriInfo.getBaseUriBuilder(), dto.id))
           .add("UP", "GET", uriInfo.getBaseUriBuilder().path("categories").build())
           .build();
   dto.links = ls;
   for (Product p : category.getProducts()) {
     dto.products.add(Converter.toDTO(p, dto.id, uriInfo));
   }
   return dto;
 }