View Javadoc

    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  import java.util.List;
    11  import java.util.ArrayList;
    12
    13  /***
    14   * Interface for the class info implementations.
    15   *
    16   * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
    17   */
    18  public interface ClassInfo extends ReflectionInfo {
    19      /***
    20       * Returns a constructor info by its hash.
    21       * Looks up in the hierarchy
    22       *
    23       * @param hash
    24       * @return
    25       */
    26      ConstructorInfo getConstructor(int hash);
    27
    28      /***
    29       * Returns the constructors info.
    30       * Does not looks up in the hierarchy
    31       *
    32       * @return the constructors info
    33       */
    34      ConstructorInfo[] getConstructors();
    35
    36      /***
    37       * Returns a method info by its hash.
    38       * Looks up in the hierarchy
    39       *
    40       * @param hash
    41       * @return
    42       */
    43      MethodInfo getMethod(int hash);
    44
    45      /***
    46       * Returns the methods info.
    47       * Does not looks up in the hierarchy
    48       *
    49       * @return the methods info
    50       */
    51      MethodInfo[] getMethods();
    52
    53      /***
    54       * Returns a field info by its hash.
    55       * Looks up in the hierarchy
    56       *
    57       * @param hash
    58       * @return
    59       */
    60      FieldInfo getField(int hash);
    61
    62      /***
    63       * Returns the fields info.
    64       * Does not looks up in the hierarchy
    65       *
    66       * @return the fields info
    67       */
    68      FieldInfo[] getFields();
    69
    70      /***
    71       * Returns the class loader that loaded this class.
    72       *
    73       * @return the class loader
    74       */
    75      ClassLoader getClassLoader();
    76
    77      /***
    78       * Checks if the class has a static initalizer.
    79       *
    80       * @return
    81       */
    82      boolean hasStaticInitializer();
    83
    84      /***
    85       * Returns the static initializer info of the current underlying class if any.
    86       *
    87       * @return
    88       */
    89      StaticInitializationInfo staticInitializer();
    90
    91      /***
    92       * Returns the interfaces.
    93       *
    94       * @return the interfaces
    95       */
    96      ClassInfo[] getInterfaces();
    97
    98      /***
    99       * Returns the super class, or null (superclass of java.lang.Object)
    100      *
    101      * @return the super class
    102      */
    103     ClassInfo getSuperclass();
    104
    105     /***
    106      * Returns the component type if array type else null.
    107      *
    108      * @return the component type
    109      */
    110     ClassInfo getComponentType();
    111
    112     /***
    113      * Is the class an interface.
    114      *
    115      * @return
    116      */
    117     boolean isInterface();
    118
    119     /***
    120      * Is the class a primitive type.
    121      *
    122      * @return
    123      */
    124     boolean isPrimitive();
    125
    126     /***
    127      * Is the class an array type.
    128      *
    129      * @return
    130      */
    131     boolean isArray();
    132
    133     public static class NullClassInfo implements ClassInfo {
    134
    135         public ConstructorInfo getConstructor(int hash) {
    136             return null;  //To change body of implemented methods use File | Settings | File Templates.
    137         }
    138
    139         public ConstructorInfo[] getConstructors() {
    140             return new ConstructorInfo[0];  //To change body of implemented methods use File | Settings | File Templates.
    141         }
    142
    143         public MethodInfo getMethod(int hash) {
    144             return null;  //To change body of implemented methods use File | Settings | File Templates.
    145         }
    146
    147         public MethodInfo[] getMethods() {
    148             return new MethodInfo[0];  //To change body of implemented methods use File | Settings | File Templates.
    149         }
    150
    151         public FieldInfo getField(int hash) {
    152             return null;  //To change body of implemented methods use File | Settings | File Templates.
    153         }
    154
    155         public FieldInfo[] getFields() {
    156             return new FieldInfo[0];  //To change body of implemented methods use File | Settings | File Templates.
    157         }
    158
    159         public boolean hasStaticInitializer() {
    160             return false;
    161         }
    162
    163 		/***
    164 		 * @see org.codehaus.aspectwerkz.reflect.ClassInfo#staticInitializer()
    165 		 */
    166 		public StaticInitializationInfo staticInitializer() {
    167 			return null;
    168 		}
    169
    170         public ClassInfo[] getInterfaces() {
    171             return new ClassInfo[0];  //To change body of implemented methods use File | Settings | File Templates.
    172         }
    173
    174         public ClassInfo getSuperclass() {
    175             return null;  //To change body of implemented methods use File | Settings | File Templates.
    176         }
    177
    178         public ClassLoader getClassLoader() {
    179             return null;
    180         }
    181
    182         public ClassInfo getComponentType() {
    183             return null;  //To change body of implemented methods use File | Settings | File Templates.
    184         }
    185
    186         public boolean isInterface() {
    187             return false;  //To change body of implemented methods use File | Settings | File Templates.
    188         }
    189
    190         public boolean isPrimitive() {
    191             return false;  //To change body of implemented methods use File | Settings | File Templates.
    192         }
    193
    194         public boolean isArray() {
    195             return false;  //To change body of implemented methods use File | Settings | File Templates.
    196         }
    197
    198         public String getName() {
    199             return null;  //To change body of implemented methods use File | Settings | File Templates.
    200         }
    201
    202         public String getSignature() {
    203             return null;  //To change body of implemented methods use File | Settings | File Templates.
    204         }
    205
    206         public int getModifiers() {
    207             return 0;  //To change body of implemented methods use File | Settings | File Templates.
    208         }
    209
    210         public List getAnnotations() {
    211             return new ArrayList();
    212         }
    213     }
    214 }