summaryrefslogtreecommitdiff
path: root/src/msil/ch/epfl/lamp/compiler/msil/MemberInfo.java
blob: 65ff1b290ba321b7d9adcc5a9e6ce7c53c4ac823 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * System.Reflection-like API for access to .NET assemblies (DLL & EXE)
 */


package ch.epfl.lamp.compiler.msil;

/**
 * The root class of the Reflection hierarchy.
 *
 * @author Nikolay Mihaylov
 * @version 1.0
 */
public abstract class MemberInfo extends CustomAttributeProvider {

    //##########################################################################

    /** The name of this member. */
    public final String Name;

    /**
     * The class that declares this member.
     * Note: if the MemberInfo object is a global member,
     * (that is, it was obtained from Module.GetMethods,
     * which returns global methods on a module), then DeclaringType
     * will be a null reference.
     */
    public final Type DeclaringType;

    /** An enumerated value from the MemberTypes class,
     *  specifying a constructor, event, field, method,
     *  property, type information, all, or custom. */
    public abstract int MemberType();

    //##########################################################################
    // protected members

    protected static final MemberInfo[] EMPTY_ARRAY = new MemberInfo[0];

    protected MemberInfo(String name, Type declType) {
	Name = name;
	DeclaringType = declType;
    }

    //########################################################################

}  // class MemberInfo