package org.jboss.resteasy.test.resource.path.resource; import javax.ws.rs.GET; import javax.ws.rs.MatrixParam; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.PathSegment; import javax.ws.rs.core.UriInfo; import java.util.List; @Path("/cars/{make}") public class PathParamCarResource { @GET @Path("/matrixparam/{model}/{year}") @Produces("text/plain") public String getFromMatrixParam(@PathParam("make") String make, @PathParam("model") PathSegment car, @MatrixParam("color") Color color, @PathParam("year") String year) { return "A " + color + " " + year + " " + make + " " + car.getPath(); } @GET @Path("/pathsegment/{model}/{year}") @Produces("text/plain") public String getFromPathSegment(@PathParam("make") String make, @PathParam("model") PathSegment car, @PathParam("year") String year) { String carColor = car.getMatrixParameters().getFirst("color"); return "A " + carColor + " " + year + " " + make + " " + car.getPath(); } @GET @Path("/pathsegments/{model : .+}/year/{year}") @Produces("text/plain") public String getFromMultipleSegments(@PathParam("make") String make, @PathParam("model") List<PathSegment> car, @PathParam("year") String year) { String output = "A " + year + " " + make; for (PathSegment segment : car) { output += " " + segment.getPath(); } return output; } @GET @Path("/uriinfo/{model}/{year}") @Produces("text/plain") public String getFromUriInfo(@Context UriInfo info) { String make = info.getPathParameters().getFirst("make"); String year = info.getPathParameters().getFirst("year"); PathSegment model = info.getPathSegments().get(3); String color = model.getMatrixParameters().getFirst("color"); return "A " + color + " " + year + " " + make + " " + model.getPath(); } public enum Color { red, white, blue, black } }