|
Struts example source code file (AnnotationUtils.java)
The Struts AnnotationUtils.java source code/* * Copyright 2002-2006,2009 The Apache Software Foundation. * * 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 com.opensymphony.xwork2.util; import java.io.File; import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URL; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * <code>AnnotationUtils * * Various utility methods dealing with annotations * * @author Rainer Hermanns * @author Zsolt Szasz, zsolt at lorecraft dot com * @author Dan Oxlade, dan d0t oxlade at gmail d0t c0m * @version $Id: AnnotationUtils.java 894090 2009-12-27 18:18:29Z martinc $ */ public class AnnotationUtils { private static final Pattern SETTER_PATTERN = Pattern.compile("set([A-Z][A-Za-z0-9]*)$"); private static final Pattern GETTER_PATTERN = Pattern.compile("(get|is|has)([A-Z][A-Za-z0-9]*)$"); /** * Adds all fields with the specified Annotation of class clazz and its superclasses to allFields * * @param annotationClass * @param clazz * @param allFields */ public static void addAllFields(Class annotationClass, Class clazz, List<Field> allFields) { if (clazz == null) { return; } Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { Annotation ann = field.getAnnotation(annotationClass); if (ann!=null) { allFields.add(field); } } addAllFields(annotationClass, clazz.getSuperclass(), allFields); } /** * Adds all methods with the specified Annotation of class clazz and its superclasses to allFields * * @param annotationClass * @param clazz * @param allMethods */ public static void addAllMethods(Class annotationClass, Class clazz, List<Method> allMethods) { if (clazz == null) { return; } Method[] methods = clazz.getDeclaredMethods(); for (Method method : methods) { Annotation ann = method.getAnnotation(annotationClass); if (ann!=null) { allMethods.add(method); } } addAllMethods(annotationClass, clazz.getSuperclass(), allMethods); } /** * * @param clazz * @param allInterfaces */ public static void addAllInterfaces(Class clazz, List<Class> allInterfaces) { if (clazz == null) { return; } Class[] interfaces = clazz.getInterfaces(); allInterfaces.addAll(Arrays.asList(interfaces)); addAllInterfaces(clazz.getSuperclass(), allInterfaces); } /** * For the given <code>Class get a collection of the the {@link AnnotatedElement}s * that match the given <code>annotations or if no Other Struts examples (source code examples)Here is a short list of links related to this Struts AnnotationUtils.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.