Code:
/ 4.0 / 4.0 / untmp / 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.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AnnotationAdorner.cs
- DecimalAnimationBase.cs
- SecurityIdentifierConverter.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- DataPager.cs
- HttpCachePolicy.cs
- TextBox.cs
- MLangCodePageEncoding.cs
- ContentValidator.cs
- TypeConverterAttribute.cs
- BoundsDrawingContextWalker.cs
- OLEDB_Util.cs
- LogicalTreeHelper.cs
- FileSystemInfo.cs
- TCEAdapterGenerator.cs
- MappingMetadataHelper.cs
- PersonalizationProviderCollection.cs
- RowSpanVector.cs
- UriExt.cs
- BaseDataList.cs
- RightsManagementInformation.cs
- ControllableStoryboardAction.cs
- BuildManagerHost.cs
- InkCanvasAutomationPeer.cs
- NotCondition.cs
- ContainerFilterService.cs
- GC.cs
- VoiceChangeEventArgs.cs
- HostingEnvironment.cs
- HtmlInputRadioButton.cs
- BinaryMethodMessage.cs
- EntityDataSourceContainerNameItem.cs
- BufferModesCollection.cs
- DataBoundLiteralControl.cs
- KnownColorTable.cs
- Duration.cs
- TaiwanCalendar.cs
- PagedDataSource.cs
- ConfigXmlReader.cs
- RelationshipEntry.cs
- RuntimeWrappedException.cs
- Comparer.cs
- WorkflowControlEndpoint.cs
- HitTestResult.cs
- XmlSchemaObjectCollection.cs
- DependencyPropertyKey.cs
- RtfControlWordInfo.cs
- SelectionItemProviderWrapper.cs
- uribuilder.cs
- HostedElements.cs
- DynamicPropertyReader.cs
- ProviderConnectionPoint.cs
- BaseAutoFormat.cs
- GeneralTransform3D.cs
- safelinkcollection.cs
- HttpCapabilitiesSectionHandler.cs
- VectorCollectionConverter.cs
- GridItemProviderWrapper.cs
- CodeGen.cs
- TreeBuilderXamlTranslator.cs
- HelloOperationCD1AsyncResult.cs
- UnsafeCollabNativeMethods.cs
- FileUtil.cs
- CompilerCollection.cs
- ErrorHandler.cs
- SafeFileMappingHandle.cs
- Context.cs
- BitmapInitialize.cs
- ParagraphVisual.cs
- FilterElement.cs
- SynchronizationContext.cs
- DataSourceXmlTextReader.cs
- Pair.cs
- PkcsMisc.cs
- ButtonFlatAdapter.cs
- PngBitmapEncoder.cs
- TextMetrics.cs
- UrlRoutingHandler.cs
- StorageMappingItemCollection.cs
- ResXBuildProvider.cs
- CustomAssemblyResolver.cs
- CodeDomExtensionMethods.cs
- TextRunProperties.cs
- MapPathBasedVirtualPathProvider.cs
- GeneratedContractType.cs
- Byte.cs
- UseAttributeSetsAction.cs
- Html32TextWriter.cs
- ApplicationDirectory.cs
- TdsParser.cs
- XmlSchemaSimpleContentExtension.cs
- OracleBoolean.cs
- OrderedDictionary.cs
- UnregisterInfo.cs
- SqlSelectStatement.cs
- QueryTask.cs
- ArrangedElement.cs
- HostedBindingBehavior.cs
- BitmapSourceSafeMILHandle.cs
- JpegBitmapDecoder.cs