KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > aspectwerkz > reflect > MetaDataInspector


1 /**************************************************************************************
2  * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
3  * http://aspectwerkz.codehaus.org *
4  * ---------------------------------------------------------------------------------- *
5  * The software in this package is published under the terms of the LGPL license *
6  * a copy of which has been included with this distribution in the license.txt file. *
7  **************************************************************************************/

8 package org.codehaus.aspectwerkz.reflect;
9
10 /**
11  * Inspects info.
12  *
13  * @author <a HREF="mailto:alex@gnilux.com">Alexandre Vasseur </a>
14  */

15 public class MetaDataInspector {
16     /**
17      * Checks if a class has a certain field.
18      *
19      * @param classInfo
20      * @param fieldName
21      * @return
22      */

23     public static boolean hasField(final ClassInfo classInfo, final String JavaDoc fieldName) {
24         for (int i = 0; i < classInfo.getFields().length; i++) {
25             FieldInfo fieldMetaData = classInfo.getFields()[i];
26             if (fieldMetaData.getName().equals(fieldName)) {
27                 return true;
28             }
29         }
30         return false;
31     }
32
33     /**
34      * Checks if a class implements a certain interface.
35      *
36      * @param classInfo
37      * @param interfaceName
38      * @return
39      */

40     public static boolean hasInterface(final ClassInfo classInfo, final String JavaDoc interfaceName) {
41         for (int i = 0; i < classInfo.getInterfaces().length; i++) {
42             ClassInfo interfaceMetaData = classInfo.getInterfaces()[i];
43             if (interfaceMetaData.getName().equals(interfaceName)) {
44                 return true;
45             }
46         }
47         return false;
48     }
49 }
Popular Tags