69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
//
|
|
// 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;
|
|
|
|
}
|
|
|
|
}
|