public IMember CreateItem(CliMemberType memberKind, ICliMetadataTableRow metadataEntry, IMemberUniqueIdentifier uniqueIdentifier, int index) { switch (memberKind) { case CliMemberType.BinaryOperator: return(this.GetBinaryOperator((ICliMetadataMethodDefinitionTableRow)metadataEntry, (IBinaryOperatorUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Constructor: return(this.GetConstructor((ICliMetadataMethodDefinitionTableRow)(metadataEntry), (IGeneralSignatureMemberUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Event: return(this.GetEvent((ICliMetadataEventTableRow)metadataEntry, (IGeneralSignatureMemberUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Field: return(this.GetField((ICliMetadataFieldTableRow)metadataEntry)); case CliMemberType.Indexer: return(this.GetIndexer((ICliMetadataPropertyTableRow)metadataEntry, (IGeneralSignatureMemberUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Method: return(this.GetMethod((ICliMetadataMethodDefinitionTableRow)metadataEntry, (IGeneralGenericSignatureMemberUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Property: return((TProperty)this.GetProperty((ICliMetadataPropertyTableRow)metadataEntry)); case CliMemberType.TypeCoercionOperator: return((ITypeCoercionMember <TType>) this.GetTypeOperator((ICliMetadataMethodDefinitionTableRow)metadataEntry, (ITypeCoercionUniqueIdentifier)uniqueIdentifier)); case CliMemberType.UnaryOperator: return((IUnaryOperatorCoercionMember <TType>) this.GetUnaryOperator((ICliMetadataMethodDefinitionTableRow)metadataEntry, (IUnaryOperatorUniqueIdentifier)uniqueIdentifier)); default: throw new InvalidOperationException(); } }
public IMember CreateItem(CliMemberType memberKind, ICliMetadataTableRow metadataEntry, IMemberUniqueIdentifier uniqueIdentifier, int index) { switch (memberKind) { case CliMemberType.Field: return(new FieldMember(this, (ICliMetadataFieldTableRow)metadataEntry, (IGeneralMemberUniqueIdentifier)uniqueIdentifier)); default: throw new NotSupportedException(); } }
public IMember CreateItem(CliMemberType memberKind, ICliMetadataTableRow metadataEntry, IMemberUniqueIdentifier uniqueIdentifier, int index) { switch (memberKind) { case CliMemberType.Event: return(new Event(this, (ICliMetadataEventTableRow)metadataEntry, (IGeneralSignatureMemberUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Indexer: return(new Indexer(this, (ICliMetadataPropertyTableRow)metadataEntry, (IGeneralSignatureMemberUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Method: return(new Method(this, (ICliMetadataMethodDefinitionTableRow)metadataEntry, (IGeneralGenericSignatureMemberUniqueIdentifier)uniqueIdentifier)); case CliMemberType.Property: return(new Property(this, (ICliMetadataPropertyTableRow)metadataEntry)); } throw new NotSupportedException(); }
internal IEnumerable <Tuple <int, TIdentifier> > ObtainSubset <TIdentifier, TMember>(CliMemberType kind) where TIdentifier : IMemberUniqueIdentifier where TMember : IDeclaration <TIdentifier>, IMember { for (int datumIndex = 0; datumIndex < this.Count; datumIndex++) { if (this.memberTypes[datumIndex] == kind) { this.CheckIdentifierAt(datumIndex); IMemberUniqueIdentifier currentId = this.memberIdentifiers[datumIndex]; if (currentId is TIdentifier) { yield return(new Tuple <int, TIdentifier>(datumIndex, (TIdentifier)currentId)); } } } }
public CliCoercionMemberDictionary(TCoercionParent parent, CliFullMemberDictionary master, CliMemberType memberKind) : base() { this.master = master; this.Parent = parent; var subset = master.ObtainSubset <TCoercionIdentifier, TCoercion>(memberKind).SplitSet(); this.Initialize(subset.Item1); this.filteredIdentifiers = subset.Item2; }