Version 2

    @PathParam and PathSegments

     

    The specification has a very simple abstraction for examining a fragment of the URI path being invoked on  javax.ws.rs.core.PathSegment:

     

    
    public interface PathSegment {
    
        /**
         * Get the path segment.
         * <p>
         * @return the path segment
         */
        String getPath();
        /**
         * Get a map of the matrix parameters associated with the path segment
         * @return the map of matrix parameters
         */
        MultivaluedMap<String, String> getMatrixParameters();
        
    }
    
    

     

    You can have Resteasy inject a PathSegment instead of a value with your @PathParam.

     

       @GET
       @Path("/book/{id}")
       public String getBook(@PathParm("id") PathSegment id) {...}
    
    

     

    This is very useful if you have a bunch of @PathParams that use matrix parameters.  The idea of matrix parameters is that they are an arbitrary set of name-value pairs embedded in a uri path segment.  The PathSegment object gives you access to theese parameters. See also MatrixParam.

     

    A matrix parameter example is:

     

    GET http://host.com/library/book;name=EJB 3.0;author=Bill Burke

     

    The basic idea of matrix parameters is that it represents resources that are addressable by their attributes as well as their raw id.