Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- HierarchicalDataSourceIDConverter.cs
- SequenceQuery.cs
- UseLicense.cs
- ConsoleTraceListener.cs
- CustomError.cs
- SecurityState.cs
- WebMethodAttribute.cs
- XmlSchemaSimpleContentRestriction.cs
- Rotation3DAnimationBase.cs
- SpellerHighlightLayer.cs
- AddingNewEventArgs.cs
- SetUserPreferenceRequest.cs
- WebContext.cs
- DiagnosticTraceSource.cs
- AppDomainFactory.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- KeyPullup.cs
- DependencyPropertyAttribute.cs
- CodeAttributeDeclaration.cs
- CheckoutException.cs
- _IPv6Address.cs
- XmlWhitespace.cs
- VariableQuery.cs
- EntitySetBaseCollection.cs
- ListViewTableCell.cs
- ConnectionString.cs
- HttpServerUtilityWrapper.cs
- InternalBufferOverflowException.cs
- WebPartDeleteVerb.cs
- SqlTypesSchemaImporter.cs
- NotFiniteNumberException.cs
- ComponentDispatcher.cs
- Vector.cs
- MultiPageTextView.cs
- TextBoxDesigner.cs
- VirtualDirectoryMapping.cs
- CookieParameter.cs
- ipaddressinformationcollection.cs
- DataGridViewCellCancelEventArgs.cs
- Cell.cs
- ListViewUpdatedEventArgs.cs
- SkipStoryboardToFill.cs
- ObjectDataSource.cs
- Decoder.cs
- InkCanvasInnerCanvas.cs
- XslCompiledTransform.cs
- ResourceManagerWrapper.cs
- EntitySqlQueryState.cs
- OracleFactory.cs
- DataContractSerializerServiceBehavior.cs
- MatchingStyle.cs
- XmlEncoding.cs
- DocumentApplication.cs
- AnnotationStore.cs
- FtpCachePolicyElement.cs
- SingleResultAttribute.cs
- MetadataItemEmitter.cs
- ReliableOutputConnection.cs
- CancelEventArgs.cs
- VisualBasicReference.cs
- BrowserDefinitionCollection.cs
- DbProviderFactoriesConfigurationHandler.cs
- CommandEventArgs.cs
- NativeObjectSecurity.cs
- XPathNodeList.cs
- XmlSchemaChoice.cs
- DataMisalignedException.cs
- CodeStatement.cs
- WebBrowserHelper.cs
- GeneralTransform3DCollection.cs
- PagePropertiesChangingEventArgs.cs
- ValidationResult.cs
- XmlSchemaAnnotation.cs
- DecoderExceptionFallback.cs
- SrgsElement.cs
- AutoGeneratedFieldProperties.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- DbConnectionInternal.cs
- PeerNearMe.cs
- FontDifferentiator.cs
- EventDescriptorCollection.cs
- SemanticResolver.cs
- GetImportFileNameRequest.cs
- QilFunction.cs
- ErrorHandler.cs
- ColumnClickEvent.cs
- XPathEmptyIterator.cs
- TreeBuilder.cs
- SafeBitVector32.cs
- DodSequenceMerge.cs
- HtmlEncodedRawTextWriter.cs
- AssociationProvider.cs
- FormParameter.cs
- XmlObjectSerializerContext.cs
- LocalServiceSecuritySettingsElement.cs
- DateTimeFormatInfo.cs
- XhtmlCssHandler.cs
- NativeMethods.cs
- SqlConnectionStringBuilder.cs
- ObjectNavigationPropertyMapping.cs