package org.jboss.resteasy.test.xxe.resource.xxeJettison;
import org.jboss.logging.Logger;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.xml.bind.JAXBElement;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Path("/")
public class JettisonMovieResource {
private static final Logger log = Logger.getLogger(JettisonMovieResource.class);
@POST
@Path("xmlRootElement")
@Consumes({"application/*+json", "application/json"})
public String addFavoriteMovie(FavoriteMovieXmlRootElement movie) {
log.info("MovieResource(xmlRootElment): title = " + movie.getTitle());
return movie.getTitle();
}
@POST
@Path("xmlType")
@Consumes({"application/*+json", "application/json"})
public String addFavoriteMovie(FavoriteMovieXmlType movie) {
log.info("MovieResource(xmlType): title = " + movie.getTitle());
return movie.getTitle();
}
@POST
@Path("JAXBElement")
@Consumes({"application/*+json", "application/json"})
public String addFavoriteMovie(JAXBElement<FavoriteMovie> value) {
log.info("MovieResource(JAXBElement): title = " + value.getValue().getTitle());
return value.getValue().getTitle();
}
@POST
@Path("list")
@Consumes({"application/*+json", "application/json"})
public String addFavoriteMovie(List<FavoriteMovieXmlRootElement> list) {
StringBuilder titles = new StringBuilder();
for (FavoriteMovieXmlRootElement movie : list) {
String title = movie.getTitle();
log.info("MovieResource(list): title = " + title);
titles.append(title).append(", ");
}
titles.setLength(titles.length() - 2);
return titles.toString();
}
@POST
@Path("set")
@Consumes({"application/*+json", "application/json"})
public String addFavoriteMovie(Set<FavoriteMovieXmlRootElement> set) {
StringBuilder titles = new StringBuilder();
for (FavoriteMovieXmlRootElement movie : set) {
String title = movie.getTitle();
log.info("MovieResource(list): title = " + title);
titles.append(title).append(", ");
}
titles.setLength(titles.length() - 2);
return titles.toString();
}
@POST
@Path("array")
@Consumes({"application/*+json", "application/json"})
public String addFavoriteMovie(FavoriteMovieXmlRootElement[] array) {
StringBuilder titles = new StringBuilder();
for (FavoriteMovieXmlRootElement movie : array) {
String title = movie.getTitle();
log.info("MovieResource(list): title = " + title);
titles.append(title).append(", ");
}
titles.setLength(titles.length() - 2);
return titles.toString();
}
@POST
@Path("map")
@Consumes({"application/*+json", "application/json"})
public String addFavoriteMovie(Map<String, FavoriteMovieXmlRootElement> map) {
StringBuilder titles = new StringBuilder();
for (FavoriteMovieXmlRootElement movie : map.values()) {
String title = movie.getTitle();
log.info("MovieResource(map): title = " + title);
titles.append(title).append(", ");
}
titles.setLength(titles.length() - 2);
return titles.toString();
}
}