javax.ws.rs.HeaderParam Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
/*
* 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.
*/
/*
* HeaderParam.java
*
* Created on January 24, 2007, 2:33 PM
*
*/
package javax.ws.rs;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Binds the value(s) of a HTTP header to a resource method parameter,
* resource class field, or resource class bean property. A default value
* can be specified using the {@link DefaultValue} annotation.
*
* The type T
of the annotated parameter, field or property
* must either:
*
* - Be a primitive type
* - Have a constructor that accepts a single
String
argument
* - Have a static method named
valueOf
or fromString
* that accepts a single
* String
argument (see, for example, {@link Integer#valueOf(String)})
* - Be
List<T>
, Set<T>
or
* SortedSet<T>
, where T
satisfies 2 or 3 above.
* The resulting collection is read-only.
*
*
* If the type is not one of those listed in 4 above then the first value
* (lexically) of the header is used.
*
* Because injection occurs at object creation time, use of this annotation
* on resource class fields and bean properties is only supported for the
* default per-request resource class lifecycle. Resource classes using
* other lifecycles should only use this annotation on resource method
* parameters.
*
* @see DefaultValue
* @see javax.ws.rs.core.HttpHeaders
*/
@Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface HeaderParam {
/**
* Defines the name of the HTTP header whose value will be used
* to initialize the value of the annotated method argument, class field or
* bean property. Case insensitive.
*/
String value();
}