/* * Copyright 2013 cruxframework.org * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.cruxframework.crux.core.shared.rest.annotation; 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; /** * <p>CRUX INTERNAL INTERFACE. DO NOT USE IT DIRECTLY. Use one of {@code @}{@link GET}, * {@code @}{@link PUT}, {@code @}{@link POST}, or {@code @}{@link DELETE} annotations.</p> * * Associates the name of a HTTP method with an annotation. A Java method annotated * with a runtime annotation that is itself annotated with this annotation will * be used to handle HTTP requests of the indicated HTTP method. It is an error * for a method to be annotated with more than one annotation that is annotated * with {@code HttpMethod}. * * @see GET * @see POST * @see PUT * @see DELETE */ @Target({ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface HttpMethod { /** * HTTP OPTIONS method */ public static final String OPTIONS="OPTIONS"; /** * HTTP GET method */ public static final String GET="GET"; /** * HTTP POST method */ public static final String POST="POST"; /** * HTTP PUT method */ public static final String PUT="PUT"; /** * HTTP DELETE method */ public static final String DELETE="DELETE"; /** * Specifies the name of a HTTP method. E.g. "GET". */ String value(); }