/** * */ package org.minnal.instrument.resource.metadata.handler; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.ws.rs.Path; import org.minnal.instrument.resource.metadata.ResourceMetaData; import org.minnal.instrument.resource.metadata.ResourceMethodMetaData; import org.minnal.utils.http.HttpUtil; import org.minnal.utils.reflection.ClassUtils; /** * @author ganeshs * */ public abstract class HttpMethodAnnotationHandler extends AbstractResourceAnnotationHandler { @Override public void handle(ResourceMetaData metaData, Annotation annotation, Method method) { Path path = ClassUtils.getAnnotation(method, Path.class); String methodPath = HttpUtil.concatPaths(metaData.getPath(), path != null ? path.value() : null); ResourceMethodMetaData resourceMethod = new ResourceMethodMetaData(methodPath, getHttpMethod(), method); metaData.addResourceMethod(resourceMethod); } @Override public void handle(ResourceMetaData metaData, Annotation annotation, Field field) { // Do nothing } /** * Returns the http method * * @return */ protected abstract String getHttpMethod(); }