27 internal sealed class EnumBuilder : TypeInfo
30 readonly TypeBuilder typeBuilder;
31 readonly FieldBuilder fieldBuilder;
38 internal EnumBuilder(TypeBuilder typeBuilder, FieldBuilder fieldBuilder) :
41 this.typeBuilder = typeBuilder;
42 this.fieldBuilder = fieldBuilder;
45 internal override TypeName TypeName
47 get {
return typeBuilder.TypeName; }
50 public override string Name
52 get {
return typeBuilder.Name; }
55 public override string FullName
57 get {
return typeBuilder.FullName; }
60 public override Type BaseType
62 get {
return typeBuilder.BaseType; }
65 public override TypeAttributes Attributes
67 get {
return typeBuilder.Attributes; }
72 get {
return typeBuilder.Module; }
75 public FieldBuilder DefineLiteral(
string literalName,
object literalValue)
77 FieldBuilder fb = typeBuilder.DefineField(literalName, typeBuilder, FieldAttributes.Public | FieldAttributes.Static | FieldAttributes.Literal);
78 fb.SetConstant(literalValue);
82 public Type CreateType()
84 return typeBuilder.CreateType();
87 public TypeInfo CreateTypeInfo()
89 return typeBuilder.CreateTypeInfo();
92 public TypeToken TypeToken
94 get {
return typeBuilder.TypeToken; }
97 public FieldBuilder UnderlyingField
99 get {
return fieldBuilder; }
102 public void SetCustomAttribute(
ConstructorInfo con,
byte[] binaryAttribute)
104 typeBuilder.SetCustomAttribute(con, binaryAttribute);
107 public void SetCustomAttribute(CustomAttributeBuilder customBuilder)
109 typeBuilder.SetCustomAttribute(customBuilder);
112 public override Type GetEnumUnderlyingType()
114 return fieldBuilder.FieldType;
117 protected override bool IsValueTypeImpl
122 internal override bool IsBaked
124 get {
return typeBuilder.IsBaked; }
IKVM.Reflection.Module Module
IKVM.Reflection.Type Type
IKVM.Reflection.ConstructorInfo ConstructorInfo
global::java.lang.invoke.LambdaForm.Name Name