package org.jboss.resteasy.test.client.resource;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.MatrixParam;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
@Path("/")
public class ParameterListResource implements ParameterListInterface {
@Override
@GET
@Path("matrix/list")
public Response matrixList(@MatrixParam("m1") List<String> list) {
StringBuilder sb = new StringBuilder();
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@GET
@Path("matrix/set")
public Response matrixSet(@MatrixParam("m1") Set<String> set) {
List<String> list = new ArrayList<String>(set);
Collections.sort(list);
StringBuilder sb = new StringBuilder();
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@GET
@Path("matrix/sortedset")
public Response matrixSortedSet(@MatrixParam("m1") SortedSet<String> set) {
StringBuilder sb = new StringBuilder();
for (Iterator<String> it = set.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@PUT
@Consumes("text/plain")
@Path("matrix/entity")
public Response matrixWithEntity(@MatrixParam("m1") List<String> list, String entity) {
StringBuilder sb = new StringBuilder(entity + ":");
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@GET
@Path("query/list")
public Response queryList(@QueryParam("q1") List<String> list) {
StringBuilder sb = new StringBuilder();
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@GET
@Path("query/set")
public Response querySet(@QueryParam("q1") Set<String> set) {
List<String> list = new ArrayList<String>(set);
Collections.sort(list);
StringBuilder sb = new StringBuilder();
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@GET
@Path("query/sortedset")
public Response querySortedSet(@QueryParam("q1") SortedSet<String> set) {
StringBuilder sb = new StringBuilder();
for (Iterator<String> it = set.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@PUT
@Consumes("text/plain")
@Path("query/entity")
public Response queryWithEntity(@QueryParam("q1") List<String> list, String entity) {
StringBuilder sb = new StringBuilder(entity + ":");
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
@Override
@PUT
@Consumes("text/plain")
@Path("matrix/query/entity")
public Response matrixQueryWithEntity(@MatrixParam("m1") List<String> matrixParams, @QueryParam("q1") List<String> queryParams, String entity) {
StringBuilder sb = new StringBuilder(entity + ":");
for (Iterator<String> it = matrixParams.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
for (Iterator<String> it = queryParams.iterator(); it.hasNext(); ) {
sb.append(it.next()).append(":");
}
return Response.ok().entity(sb.toString()).build();
}
}