All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yestech.lib.util.AnnotationUtil Maven / Gradle / Ivy

Go to download

A collection of classes that can be used across yestech artifacts/components, but must not be dependant on any yestech component. Most of the code is utility type code. When more than a few classes are found to be in a package or the package start to handle more that a few reposibilities then a new independant component is created and the existing code in yeslib is ported to the new component.

The newest version!
/*
 * Copyright LGPL3
 * YES Technology Association
 * http://yestech.org
 *
 * http://www.opensource.org/licenses/lgpl-3.0.html
 */

package org.yestech.lib.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yestech.lib.web.Location;

import javax.servlet.RequestDispatcher;
import java.lang.reflect.Method;
import java.lang.reflect.Field;
import java.lang.annotation.Annotation;
import java.util.List;

/**
 * A collection of utility methods for dealing with annotations
 */
public class AnnotationUtil {
    final private static Logger logger = LoggerFactory.getLogger(AnnotationUtil.class);


    /**
     * Locates and returns an Annotation from array of Annotations
     *
     * @param annotationClass annotation to look for
     * @param annotations the annotations to search 
     * @param  Type of the annotation
     * @return the Found annotation else null if not found
     */
    @SuppressWarnings("unchecked")
    public static  A getAnnotation(Class annotationClass, Annotation[] annotations) {
        A result = null;
        if (annotations != null && annotationClass != null) {
            int totalAnnotations = annotations.length;
            for (int i = 0; i < totalAnnotations; i++) {
                Annotation annotation = annotations[i];
                if (annotationClass.equals(annotation.annotationType())) {
                    result = (A) annotation;
                }
            }
        }
        return result;
    }

    /**
     * Locates and returns an Annotation from array of Annotations
     *
     * @param annotationClass annotation to look for
     * @param annotations the annotations to search
     * @param  Type of the annotation
     * @return the Found annotation else null if not found
     */
    @SuppressWarnings("unchecked")
    public static  A getAnnotation(Class annotationClass, List annotations) {
        A result = null;
        if (annotations != null && annotationClass != null) {
            result = getAnnotation(annotationClass, annotations.toArray(new Annotation[annotations.size()]));
        }
        return result;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy