Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / SchemaElementLookUpTable.cs / 1305376 / SchemaElementLookUpTable.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Data;
using System.Data.Metadata.Edm;
namespace System.Data.EntityModel.SchemaObjectModel
{
///
/// Summary description for SchemaElementLookUpTable.
///
internal sealed class SchemaElementLookUpTable : IEnumerable, ISchemaElementLookUpTable
where T : SchemaElement
{
#region Instance Fields
private Dictionary _keyToType = null;
private List _keysInDefOrder = new List();
#endregion
#region Public Methods
///
///
///
public SchemaElementLookUpTable()
{
}
///
///
///
public int Count
{
get
{
return KeyToType.Count;
}
}
///
///
///
///
///
public bool ContainsKey(string key)
{
return KeyToType.ContainsKey(KeyFromName(key));
}
///
///
///
///
///
public T LookUpEquivalentKey(string key)
{
key = KeyFromName(key);
T element;
if (KeyToType.TryGetValue(key, out element))
{
return element;
}
return null;
}
///
///
///
public T this[string key]
{
get
{
return KeyToType[KeyFromName(key)];
}
}
///
///
///
public T GetElementAt(int index)
{
return KeyToType[_keysInDefOrder[index]];
}
///
///
///
///
public IEnumerator GetEnumerator()
{
return new SchemaElementLookUpTableEnumerator(KeyToType,_keysInDefOrder);
}
IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return new SchemaElementLookUpTableEnumerator(KeyToType,_keysInDefOrder);
}
///
///
///
///
public IEnumerator GetFilteredEnumerator()
where S : T
{
return new SchemaElementLookUpTableEnumerator(KeyToType,_keysInDefOrder);
}
///
/// Add the given type to the schema look up table. If there is an error, it
/// adds the error and returns false. otherwise, it adds the type to the lookuptable
/// and returns true
///
public AddErrorKind TryAdd(T type)
{
Debug.Assert(type != null, "type parameter is null");
if (String.IsNullOrEmpty(type.Identity))
{
return AddErrorKind.MissingNameError;
}
string key = KeyFromElement(type);
T element;
if (KeyToType.TryGetValue(key, out element))
{
return AddErrorKind.DuplicateNameError;
}
KeyToType.Add(key,type);
_keysInDefOrder.Add(key);
return AddErrorKind.Succeeded;
}
public void Add(T type, bool doNotAddErrorForEmptyName, Func
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectDataSourceFilteringEventArgs.cs
- ParserStack.cs
- ToolStripItemClickedEventArgs.cs
- AdRotator.cs
- Light.cs
- _ChunkParse.cs
- WebPartPersonalization.cs
- CustomAttributeBuilder.cs
- ComboBoxRenderer.cs
- CopyNodeSetAction.cs
- FileCodeGroup.cs
- Link.cs
- PatternMatcher.cs
- GroupBoxRenderer.cs
- WinFormsSecurity.cs
- XsltCompileContext.cs
- SqlUserDefinedAggregateAttribute.cs
- ExecutionContext.cs
- ByteAnimationBase.cs
- TextUtf8RawTextWriter.cs
- SignatureResourceHelper.cs
- ExpandableObjectConverter.cs
- FileDialogCustomPlacesCollection.cs
- CompatibleComparer.cs
- FreezableCollection.cs
- UiaCoreProviderApi.cs
- StrongTypingException.cs
- StackSpiller.Bindings.cs
- XamlReader.cs
- PtsPage.cs
- WindowsListViewScroll.cs
- VersionedStreamOwner.cs
- ExceptionWrapper.cs
- LogicalMethodInfo.cs
- Attributes.cs
- EpmSyndicationContentDeSerializer.cs
- ExitEventArgs.cs
- BitmapEffectGroup.cs
- Boolean.cs
- MouseButtonEventArgs.cs
- messageonlyhwndwrapper.cs
- unitconverter.cs
- PropertyMapper.cs
- WebPartDisplayMode.cs
- EventRoute.cs
- ConnectionPoint.cs
- KeyGestureConverter.cs
- NameTable.cs
- ElementMarkupObject.cs
- PolygonHotSpot.cs
- DecoratedNameAttribute.cs
- XmlILTrace.cs
- WinEventHandler.cs
- TreeNodeClickEventArgs.cs
- XmlAtomErrorReader.cs
- UIElement3DAutomationPeer.cs
- StrokeCollection2.cs
- Publisher.cs
- HuffCodec.cs
- PerformanceCounterPermissionEntryCollection.cs
- ColorTransformHelper.cs
- SynchronousChannelMergeEnumerator.cs
- DeclaredTypeValidatorAttribute.cs
- LinearGradientBrush.cs
- ComAdminInterfaces.cs
- StateMachineExecutionState.cs
- SessionEndingEventArgs.cs
- ValidatedControlConverter.cs
- JoinGraph.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- NgenServicingAttributes.cs
- _SingleItemRequestCache.cs
- XmlExceptionHelper.cs
- PointLightBase.cs
- SineEase.cs
- Point.cs
- TimeSpanStorage.cs
- HasCopySemanticsAttribute.cs
- CookieParameter.cs
- VisualState.cs
- ServiceAuthorizationManager.cs
- SQLCharsStorage.cs
- CodeCommentStatement.cs
- CodeParameterDeclarationExpression.cs
- _FtpDataStream.cs
- FilterException.cs
- DataGridViewCellPaintingEventArgs.cs
- Completion.cs
- BindingCollectionElement.cs
- CallbackValidatorAttribute.cs
- coordinator.cs
- FontEmbeddingManager.cs
- DataGridColumnHeader.cs
- InvokeBase.cs
- PageThemeParser.cs
- ContextMenuStripActionList.cs
- AsnEncodedData.cs
- ComAwareEventInfo.cs
- FusionWrap.cs
- SharedStatics.cs