Package de.codecentric.moviedatabase.controller

Source Code of de.codecentric.moviedatabase.controller.TagResourceAssembler

package de.codecentric.moviedatabase.controller;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;

import org.springframework.hateoas.Link;
import org.springframework.hateoas.Resource;
import org.springframework.util.Assert;

import de.codecentric.moviedatabase.domain.Tag;
import de.codecentric.moviedatabase.hateoas.AbstractResourceAssembler;
import de.codecentric.moviedatabase.hateoas.ControllerLinkBuilderFactory;

public class TagResourceAssembler extends AbstractResourceAssembler<Tag, Resource<Tag>> {
 
  private ControllerLinkBuilderFactory linkBuilderFactory;
 
  public TagResourceAssembler(ControllerLinkBuilderFactory linkBuilderFactory) {
    super();
    this.linkBuilderFactory = linkBuilderFactory;
  }

  @Override
  public Resource<Tag> toResource(Tag tag) {
    Assert.notNull(tag);
    Link searchLink = null;
    searchLink = linkBuilderFactory.linkTo(AbstractMovieController.class)
      .addRequestParam(RequestParameter.SEARCH_STRING.getName(), "tag:'"+tag.getLabel()+"'").withRel(Relation.SEARCH.getName());
    return new Resource<Tag>(tag, searchLink);
  }
 
  public Resource<Tag> toResource(Tag tag, UUID movieId){
    Assert.notNull(movieId);
    Resource<Tag> resourceTag = toResource(tag);
    Link deleteTagFromMovieLink = linkBuilderFactory.linkTo(AbstractMovieController.class).slash(movieId).slash(PathFragment.TAGS.getName()).slash(tag.getLabel()).withSelfRel();
    resourceTag.add(deleteTagFromMovieLink);
    return resourceTag;
  }

  public List<Resource<Tag>> toResource(Collection<Tag> tags, UUID movieId){
    Assert.notNull(tags);
    List<Resource<Tag>> resourceList = new ArrayList<Resource<Tag>>();
    for (Tag tag: tags){
      resourceList.add(toResource(tag, movieId));
    }
    return resourceList;
  }
}
TOP

Related Classes of de.codecentric.moviedatabase.controller.TagResourceAssembler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.