private bool RemoveForgottenIndexer(ISealableDictionary <IFeatureName, IFeatureInstance> featureTable, IInheritance inheritanceItem) { if (inheritanceItem.ForgetIndexer) { bool Removed = false; foreach (KeyValuePair <IFeatureName, IFeatureInstance> Entry in featureTable) { if (Entry.Key == FeatureName.IndexerFeatureName) { IFeatureInstance CurrentInstance = Entry.Value; CurrentInstance.SetIsForgotten(true); Removed = true; break; } } if (!Removed) { AddSourceError(new ErrorIndexerInheritance(inheritanceItem)); return(false); } } return(true); }
private bool RemoveForgottenIdentifiers(ISealableDictionary <IFeatureName, ISealableDictionary <string, IClass> > exportTable, ISealableDictionary <IFeatureName, ITypedefType> typedefTable, ISealableDictionary <IFeatureName, IDiscrete> discreteTable, ISealableDictionary <IFeatureName, IFeatureInstance> featureTable, ISealableDictionary <string, IIdentifier> forgetTable) { bool Result = true; foreach (KeyValuePair <string, IIdentifier> IdentifierEntry in forgetTable) { string ValidIdentifier = IdentifierEntry.Key; IIdentifier IdentifierItem = IdentifierEntry.Value; bool IsRemoved = false; RemoveIdentifierFromTable(exportTable as IDictionary, ValidIdentifier, ref IsRemoved); RemoveIdentifierFromTable(typedefTable as IDictionary, ValidIdentifier, ref IsRemoved); RemoveIdentifierFromTable(discreteTable as IDictionary, ValidIdentifier, ref IsRemoved); foreach (KeyValuePair <IFeatureName, IFeatureInstance> Entry in featureTable) { IFeatureName EntryName = Entry.Key; if (EntryName.Name == ValidIdentifier) { IFeatureInstance CurrentInstance = Entry.Value; CurrentInstance.SetIsForgotten(true); IsRemoved = true; break; } } if (!IsRemoved) { AddSourceError(new ErrorUnknownIdentifier(IdentifierItem, ValidIdentifier)); } Result &= IsRemoved; } return(Result); }