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);
        }