/*
* Copyright 2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package bookmarks;
import org.springframework.hateoas.Link;
import org.springframework.hateoas.ResourceSupport;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*;
/**
* @author Greg Turnquist
*/
// tag::code[]
class BookmarkResource extends ResourceSupport {
private final Bookmark bookmark;
public BookmarkResource(Bookmark bookmark) {
String username = bookmark.getAccount().getUsername();
this.bookmark = bookmark;
this.add(new Link(bookmark.uri, "bookmark-uri"));
this.add(linkTo(BookmarkRestController.class, username).withRel("bookmarks"));
this.add(linkTo(
methodOn(BookmarkRestController.class, username).readBookmark(null,
bookmark.getId())).withSelfRel());
}
public Bookmark getBookmark() {
return bookmark;
}
}
// end::code[]