001/** 002 * Copyright 2014 Tampere University of Technology, Pori Department 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package core.tut.pori.http.annotations; 017 018import static java.lang.annotation.ElementType.PARAMETER; 019import static java.lang.annotation.RetentionPolicy.RUNTIME; 020 021import java.lang.annotation.Documented; 022import java.lang.annotation.Inherited; 023import java.lang.annotation.Retention; 024import java.lang.annotation.Target; 025 026/** 027 * Annotation for defining a single parameter within a HTTPServiceMethod. 028 * 029 */ 030@Retention(RUNTIME) 031@Target({PARAMETER}) 032@Inherited 033@Documented 034public @interface HTTPMethodParameter { 035 /** 036 * 037 * @return name of the parameter 038 */ 039 String name(); 040 041 /** 042 * The parameter value should be defined as it would appear in a method request with values separated by , and URL encoded if needed. 043 * 044 * @return default value for this parameter 045 */ 046 String defaultValue() default ""; 047 048 /** 049 * 050 * @return whether this parameter is required or not 051 */ 052 boolean required() default true; 053 054 /** 055 * If set to true, the value of body shall be passed on to this parameter, and the default URL parameter lookup will be skipped, 056 * in this case the name() of the parameter is ignored. 057 * 058 * Note: there can be ONLY ONE body parameter per method 059 * 060 * @return whether this is a body parameter 061 */ 062 boolean bodyParameter() default false; 063}