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(); } }