blob: 409020a99aa8ee43e25b6728d6bf45951c99d341 [file] [log] [blame]
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php
* See the License for the specific language governing
* permissions and limitations under the License.
*/
package javax.ws.rs.ext;
import javax.ws.rs.core.MediaType;
/**
* Contract for a provider that supplies context information to resource
* classes and other providers. An implementation of this interface must be
* annotated with {@link Provider}.
*
* A <code>ContextResolver</code> implementation may be annotated
* with {@link javax.ws.rs.ProduceMime} to restrict the media types for
* which it will be considered suitable.
*
* @see javax.ws.rs.core.Context
* @see Providers#getContextResolver(java.lang.Class, java.lang.Class, javax.ws.rs.core.MediaType)
* @see Provider
* @see javax.ws.rs.ProduceMime
*/
public interface ContextResolver<T> {
/**
* Get a context of type <code>T</code> that is applicable to the supplied
* type.
* @param type the class of object for which a context is desired
* @return a context for the supplied type or <code>null</code> if a
* context for the supplied type is not available from this provider.
*/
T getContext(Class<?> type);
}