package org.jboss.resteasy.test.resource.path.resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.PathSegment;
import javax.ws.rs.core.Response;
import java.util.List;
import java.util.Set;
@Path(value = "/PathParamTest")
public class PathParamResource {
@GET
@Path("/{id}")
public Response single(@PathParam("id") String id) {
return Response.ok("single=" + id).build();
}
@GET
@Path("/{id}/{id1}")
public Response two(@PathParam("id") String id,
@PathParam("id1") PathSegment id1) {
return Response.ok("double=" + id + id1.getPath()).build();
}
@GET
@Path("/{id}/{id1}/{id2}")
public Response triple(@PathParam("id") int id,
@PathParam("id1") PathSegment id1,
@PathParam("id2") float id2) {
return Response.ok("triple=" + id + id1.getPath() + id2).build();
}
@GET
@Path("/{id}/{id1}/{id2}/{id3}")
public Response quard(@PathParam("id") double id,
@PathParam("id1") boolean id1,
@PathParam("id2") byte id2,
@PathParam("id3") PathSegment id3) {
return Response.ok("quard=" + id + id1 + id2 + id3.getPath()).build();
}
@GET
@Path("/{id}/{id1}/{id2}/{id3}/{id4}")
public Response penta(@PathParam("id") long id,
@PathParam("id1") String id1,
@PathParam("id2") short id2,
@PathParam("id3") boolean id3,
@PathParam("id4") PathSegment id4) {
return Response.ok("penta=" + id + id1 + id2 + id3 + id4.getPath()).
build();
}
@Produces("text/plain")
@GET
@Path("/{id}/{id}/{id}/{id}/{id}/{id}")
public Response list(@PathParam("id") List<String> id) {
StringBuffer sb = new StringBuffer();
sb.append("list=");
for (String tmp : id) {
sb.append(tmp);
}
return Response.ok(sb.toString()).build();
}
@Produces("text/plain")
@GET
@Path("/matrix/{id}")
public Response matrixparamtest(@PathParam("id") PathSegment id) {
StringBuffer sb = new StringBuffer();
sb.append("matrix=");
sb.append("/" + id.getPath());
MultivaluedMap<String, String> matrix = id.getMatrixParameters();
Set keys = matrix.keySet();
for (Object key : keys) {
sb.append(";" + key.toString() + "=" +
matrix.getFirst(key.toString()));
}
return Response.ok(sb.toString()).build();
}
}