Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / Serialization / CodeIdentifiers.cs / 1 / 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
- ContentDisposition.cs
- RadioButtonStandardAdapter.cs
- HierarchicalDataSourceDesigner.cs
- Compilation.cs
- UntrustedRecipientException.cs
- DatagridviewDisplayedBandsData.cs
- PrinterUnitConvert.cs
- DataTrigger.cs
- CompiledXpathExpr.cs
- NavigationWindowAutomationPeer.cs
- DataSvcMapFileSerializer.cs
- ProviderIncompatibleException.cs
- IntersectQueryOperator.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- OutputCacheSection.cs
- HttpStaticObjectsCollectionWrapper.cs
- SpeechEvent.cs
- ValueTable.cs
- XsdBuilder.cs
- X500Name.cs
- OpenTypeLayout.cs
- Table.cs
- AuthenticationService.cs
- AssemblyHash.cs
- CommonDialog.cs
- OleDbMetaDataFactory.cs
- NativeMethods.cs
- UrlPath.cs
- WindowsIPAddress.cs
- MouseButton.cs
- Item.cs
- TypeToken.cs
- TextRunProperties.cs
- counter.cs
- XsltConvert.cs
- BitmapEffectInputData.cs
- TypeDescriptor.cs
- SoapIncludeAttribute.cs
- SmtpSection.cs
- Rotation3DAnimationBase.cs
- ParsedAttributeCollection.cs
- QuaternionRotation3D.cs
- PopupRootAutomationPeer.cs
- CompilationPass2Task.cs
- ClosableStream.cs
- CharConverter.cs
- ComponentChangingEvent.cs
- SiteMapPath.cs
- Cursors.cs
- StyleTypedPropertyAttribute.cs
- SingleStorage.cs
- ConnectivityStatus.cs
- KeyPullup.cs
- EditorPart.cs
- EditorResources.cs
- QueryPageSettingsEventArgs.cs
- FormParameter.cs
- ObjectSecurity.cs
- ModifiableIteratorCollection.cs
- RelatedImageListAttribute.cs
- IncrementalCompileAnalyzer.cs
- OrderedDictionaryStateHelper.cs
- XhtmlBasicListAdapter.cs
- RegexMatchCollection.cs
- WindowsSolidBrush.cs
- ConnectionPoint.cs
- IUnknownConstantAttribute.cs
- DataServiceStreamProviderWrapper.cs
- __Filters.cs
- DrawListViewSubItemEventArgs.cs
- ToolBarOverflowPanel.cs
- GridViewAutomationPeer.cs
- HandleRef.cs
- RelationshipEndMember.cs
- Light.cs
- UnsafeNativeMethodsMilCoreApi.cs
- DataGridViewRowCancelEventArgs.cs
- MetricEntry.cs
- CustomTypeDescriptor.cs
- BoundsDrawingContextWalker.cs
- DataControlLinkButton.cs
- IntPtr.cs
- ExpressionEditorAttribute.cs
- X509RawDataKeyIdentifierClause.cs
- Merger.cs
- FilterElement.cs
- SmtpAuthenticationManager.cs
- BookmarkCallbackWrapper.cs
- DataGridViewBindingCompleteEventArgs.cs
- BitmapCodecInfo.cs
- AttributeAction.cs
- ControlValuePropertyAttribute.cs
- PathTooLongException.cs
- TemplateColumn.cs
- BindingContext.cs
- ColumnBinding.cs
- Pens.cs
- DesignerLoader.cs
- MinimizableAttributeTypeConverter.cs
- EditorZone.cs