Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Serialization / CodeIdentifiers.cs / 1305376 / CodeIdentifiers.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Serialization { using System; using System.Collections; using System.IO; using System.Globalization; class CaseInsensitiveKeyComparer : CaseInsensitiveComparer, IEqualityComparer{ public CaseInsensitiveKeyComparer() : base(CultureInfo.CurrentCulture) { } bool IEqualityComparer.Equals(Object x, Object y) { return (Compare(x, y) == 0); } int IEqualityComparer.GetHashCode(Object obj) { string s = obj as string; if (s == null) throw new ArgumentException(null, "obj"); return s.ToUpper(CultureInfo.CurrentCulture).GetHashCode(); } } ////// /// /// public class CodeIdentifiers { Hashtable identifiers; Hashtable reservedIdentifiers; ArrayList list; bool camelCase; public CodeIdentifiers() : this(true) { } public CodeIdentifiers(bool caseSensitive) { if (caseSensitive) { identifiers = new Hashtable(); reservedIdentifiers = new Hashtable(); } else { IEqualityComparer comparer = new CaseInsensitiveKeyComparer(); identifiers = new Hashtable(comparer); reservedIdentifiers = new Hashtable(comparer); } list = new ArrayList(); } ///[To be supplied.] ///public void Clear(){ identifiers.Clear(); list.Clear(); } /// /// /// public bool UseCamelCasing { get { return camelCase; } set { camelCase = value; } } ///[To be supplied.] ////// /// public string MakeRightCase(string identifier) { if (camelCase) return CodeIdentifier.MakeCamel(identifier); else return CodeIdentifier.MakePascal(identifier); } ///[To be supplied.] ////// /// public string MakeUnique(string identifier) { if (IsInUse(identifier)) { for (int i = 1; ; i++) { string newIdentifier = identifier + i.ToString(CultureInfo.InvariantCulture); if (!IsInUse(newIdentifier)) { identifier = newIdentifier; break; } } } // Check that we did not violate the identifier length after appending the suffix. if (identifier.Length > CodeIdentifier.MaxIdentifierLength) { return MakeUnique("Item"); } return identifier; } ///[To be supplied.] ////// /// public void AddReserved(string identifier) { reservedIdentifiers.Add(identifier, identifier); } ///[To be supplied.] ////// /// public void RemoveReserved(string identifier) { reservedIdentifiers.Remove(identifier); } ///[To be supplied.] ////// /// public string AddUnique(string identifier, object value) { identifier = MakeUnique(identifier); Add(identifier, value); return identifier; } ///[To be supplied.] ////// /// public bool IsInUse(string identifier) { return identifiers.Contains(identifier) || reservedIdentifiers.Contains(identifier); } ///[To be supplied.] ////// /// public void Add(string identifier, object value) { identifiers.Add(identifier, value); list.Add(value); } ///[To be supplied.] ////// /// public void Remove(string identifier) { list.Remove(identifiers[identifier]); identifiers.Remove(identifier); } ///[To be supplied.] ////// /// public object ToArray(Type type) { //Array array = Array.CreateInstance(type, identifiers.Values.Count); //identifiers.Values.CopyTo(array, 0); Array array = Array.CreateInstance(type, list.Count); list.CopyTo(array, 0); return array; } internal CodeIdentifiers Clone() { CodeIdentifiers newIdentifiers = new CodeIdentifiers(); newIdentifiers.identifiers = (Hashtable)this.identifiers.Clone(); newIdentifiers.reservedIdentifiers = (Hashtable)this.reservedIdentifiers.Clone(); newIdentifiers.list = (ArrayList)this.list.Clone(); newIdentifiers.camelCase = this.camelCase; return newIdentifiers; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //[To be supplied.] ///// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Serialization { using System; using System.Collections; using System.IO; using System.Globalization; class CaseInsensitiveKeyComparer : CaseInsensitiveComparer, IEqualityComparer{ public CaseInsensitiveKeyComparer() : base(CultureInfo.CurrentCulture) { } bool IEqualityComparer.Equals(Object x, Object y) { return (Compare(x, y) == 0); } int IEqualityComparer.GetHashCode(Object obj) { string s = obj as string; if (s == null) throw new ArgumentException(null, "obj"); return s.ToUpper(CultureInfo.CurrentCulture).GetHashCode(); } } ////// /// /// public class CodeIdentifiers { Hashtable identifiers; Hashtable reservedIdentifiers; ArrayList list; bool camelCase; public CodeIdentifiers() : this(true) { } public CodeIdentifiers(bool caseSensitive) { if (caseSensitive) { identifiers = new Hashtable(); reservedIdentifiers = new Hashtable(); } else { IEqualityComparer comparer = new CaseInsensitiveKeyComparer(); identifiers = new Hashtable(comparer); reservedIdentifiers = new Hashtable(comparer); } list = new ArrayList(); } ///[To be supplied.] ///public void Clear(){ identifiers.Clear(); list.Clear(); } /// /// /// public bool UseCamelCasing { get { return camelCase; } set { camelCase = value; } } ///[To be supplied.] ////// /// public string MakeRightCase(string identifier) { if (camelCase) return CodeIdentifier.MakeCamel(identifier); else return CodeIdentifier.MakePascal(identifier); } ///[To be supplied.] ////// /// public string MakeUnique(string identifier) { if (IsInUse(identifier)) { for (int i = 1; ; i++) { string newIdentifier = identifier + i.ToString(CultureInfo.InvariantCulture); if (!IsInUse(newIdentifier)) { identifier = newIdentifier; break; } } } // Check that we did not violate the identifier length after appending the suffix. if (identifier.Length > CodeIdentifier.MaxIdentifierLength) { return MakeUnique("Item"); } return identifier; } ///[To be supplied.] ////// /// public void AddReserved(string identifier) { reservedIdentifiers.Add(identifier, identifier); } ///[To be supplied.] ////// /// public void RemoveReserved(string identifier) { reservedIdentifiers.Remove(identifier); } ///[To be supplied.] ////// /// public string AddUnique(string identifier, object value) { identifier = MakeUnique(identifier); Add(identifier, value); return identifier; } ///[To be supplied.] ////// /// public bool IsInUse(string identifier) { return identifiers.Contains(identifier) || reservedIdentifiers.Contains(identifier); } ///[To be supplied.] ////// /// public void Add(string identifier, object value) { identifiers.Add(identifier, value); list.Add(value); } ///[To be supplied.] ////// /// public void Remove(string identifier) { list.Remove(identifiers[identifier]); identifiers.Remove(identifier); } ///[To be supplied.] ////// /// public object ToArray(Type type) { //Array array = Array.CreateInstance(type, identifiers.Values.Count); //identifiers.Values.CopyTo(array, 0); Array array = Array.CreateInstance(type, list.Count); list.CopyTo(array, 0); return array; } internal CodeIdentifiers Clone() { CodeIdentifiers newIdentifiers = new CodeIdentifiers(); newIdentifiers.identifiers = (Hashtable)this.identifiers.Clone(); newIdentifiers.reservedIdentifiers = (Hashtable)this.reservedIdentifiers.Clone(); newIdentifiers.list = (ArrayList)this.list.Clone(); newIdentifiers.camelCase = this.camelCase; return newIdentifiers; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CheckPair.cs
- FixedHyperLink.cs
- HtmlImage.cs
- Rotation3DAnimationBase.cs
- __ConsoleStream.cs
- PngBitmapDecoder.cs
- ConnectorSelectionGlyph.cs
- ListGeneralPage.cs
- SqlCommandBuilder.cs
- XmlSchemaSimpleTypeList.cs
- ArgumentException.cs
- uribuilder.cs
- AssemblyAttributes.cs
- DispatcherFrame.cs
- PngBitmapDecoder.cs
- StatusBar.cs
- TraceEventCache.cs
- Single.cs
- DoubleCollectionValueSerializer.cs
- ExpressionBindingCollection.cs
- OdbcStatementHandle.cs
- ObjectListItemCollection.cs
- UMPAttributes.cs
- NamespaceQuery.cs
- ParserOptions.cs
- Image.cs
- WebRequestModulesSection.cs
- ThreadPool.cs
- MetadataArtifactLoaderCompositeFile.cs
- templategroup.cs
- QueryCursorEventArgs.cs
- NativeMethods.cs
- EnumCodeDomSerializer.cs
- RectValueSerializer.cs
- CompatibleIComparer.cs
- FilterException.cs
- WebPartConnection.cs
- ColumnTypeConverter.cs
- tooltip.cs
- IsolatedStorageFileStream.cs
- HierarchicalDataSourceControl.cs
- RightNameExpirationInfoPair.cs
- AppPool.cs
- GridPattern.cs
- ProfileGroupSettingsCollection.cs
- XmlComment.cs
- DBSqlParserColumn.cs
- DirectoryInfo.cs
- MetadataCacheItem.cs
- ScriptServiceAttribute.cs
- SchemaNamespaceManager.cs
- TrustManager.cs
- ResourceDescriptionAttribute.cs
- ToolStripSystemRenderer.cs
- HttpRequest.cs
- DoubleConverter.cs
- ContentAlignmentEditor.cs
- SslStream.cs
- ServiceCredentialsSecurityTokenManager.cs
- IISMapPath.cs
- _ListenerAsyncResult.cs
- Rect3DConverter.cs
- DashStyles.cs
- GridErrorDlg.cs
- AuthenticatedStream.cs
- RijndaelCryptoServiceProvider.cs
- OrderedEnumerableRowCollection.cs
- Column.cs
- ViewStateModeByIdAttribute.cs
- KeyValueConfigurationCollection.cs
- ManipulationStartingEventArgs.cs
- _LocalDataStoreMgr.cs
- SerTrace.cs
- BinaryUtilClasses.cs
- WebSysDisplayNameAttribute.cs
- DetailsViewDeleteEventArgs.cs
- SwitchExpression.cs
- Translator.cs
- StringArrayConverter.cs
- DataColumnCollection.cs
- TrackingStringDictionary.cs
- BindingGroup.cs
- SafeThemeHandle.cs
- controlskin.cs
- TriggerBase.cs
- ReflectionPermission.cs
- TrailingSpaceComparer.cs
- WindowClosedEventArgs.cs
- FixedSOMElement.cs
- MetabaseSettings.cs
- BooleanAnimationUsingKeyFrames.cs
- WsdlBuildProvider.cs
- XamlParser.cs
- XmlBufferReader.cs
- CompositeKey.cs
- TypeReference.cs
- ByteStreamGeometryContext.cs
- BasicBrowserDialog.cs
- TableLayoutPanelResizeGlyph.cs
- BufferAllocator.cs