singrdk/base/Windows/mkmsil/msil/MetaDataInterfaceImpl.cs

69 lines
2.0 KiB
C#
Raw Normal View History

2008-11-17 18:29:00 -05:00
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
namespace Bartok.MSIL
{
using System;
using System.Collections;
public class MetaDataInterfaceImpl: MetaDataObject {
// Constructor Methods
internal MetaDataInterfaceImpl(int classIndex, int interfaceIndex) {
this.classIndex = classIndex;
this.interfaceIndex = interfaceIndex;
}
// This is technically not a constructor method, but it is meant to
// be used to set up the object
internal void resolveReferences(MetaDataLoader loader,
ArrayList[] interfaceListArray) {
this.classObject = loader.getTypeDef(this.classIndex);
this.interfaceObject = loader.getTypeDefOrRef(this.interfaceIndex);
if (interfaceListArray[this.classIndex] == null) {
interfaceListArray[this.classIndex] = new ArrayList();
}
interfaceListArray[this.classIndex].Add(this.interfaceObject);
}
// Access Methods
public MetaDataTypeDefinition Class {
get {
return this.classObject;
}
}
public MetaDataObject Interface {
get {
return this.interfaceObject;
}
}
// Debug Methods
public override String ToString() {
if (this.classObject == null || this.interfaceObject == null) {
return ("MetaDataInterfaceImpl("+this.classIndex+","+
this.interfaceIndex+")");
}
else {
return ("MetaDataInterfaceImpl("+this.classObject+","+
this.interfaceObject+")");
}
}
// State
private readonly int classIndex;
private MetaDataTypeDefinition classObject;
private readonly int interfaceIndex;
private MetaDataObject interfaceObject;
}
}