Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / NameHandler.cs / 1 / NameHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All Rights Reserved. // Information Contained Herein is Proprietary and Confidential. // //----------------------------------------------------------------------------- namespace System.Data.Design { using System; using System.Data; using System.CodeDom; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.CodeDom.Compiler; using System.ComponentModel.Design; using System.ComponentModel; internal sealed class NameHandler { private const string FunctionsTableName = "Queries"; private DataSourceNameHandler dataSourceHandler = null; private static CodeDomProvider codeProvider = null; private bool languageCaseInsensitive = false; private static Hashtable lookupIdentifiers; internal NameHandler(CodeDomProvider codeProvider) { if(codeProvider == null) { throw new ArgumentException("codeProvider"); } NameHandler.codeProvider = codeProvider; } internal void GenerateMemberNames(DesignDataSource dataSource, ArrayList problemList) { if(dataSource == null || codeProvider == null) { throw new InternalException("DesignDataSource or/and CodeDomProvider parameters are null."); } // init the lookup-identifiers hashtable; we need this for compatibility with WebData's generator InitLookupIdentifiers(); // generate names for DataSource-class members dataSourceHandler = new DataSourceNameHandler(); dataSourceHandler.GenerateMemberNames(dataSource, codeProvider, this.languageCaseInsensitive, problemList); foreach (DesignTable table in dataSource.DesignTables) { // create table name handler DataTableNameHandler currentTableHandler = new DataTableNameHandler(); currentTableHandler.GenerateMemberNames(table, codeProvider, this.languageCaseInsensitive, problemList); // create component name handler DataComponentNameHandler currentComponentHandler = new DataComponentNameHandler(); currentComponentHandler.GenerateMemberNames(table, codeProvider, this.languageCaseInsensitive, problemList); } // process names for the 'Functions' component if (dataSource.Sources != null && dataSource.Sources.Count > 0) { // create a 'fake' table and set names and sources on it DesignTable functionsTable = new DesignTable(); functionsTable.TableType = TableType.RadTable; functionsTable.DataAccessorName = dataSource.FunctionsComponentName; functionsTable.UserDataComponentName = dataSource.UserFunctionsComponentName; functionsTable.GeneratorDataComponentClassName = dataSource.GeneratorFunctionsComponentClassName; foreach (Source source in dataSource.Sources) { functionsTable.Sources.Add(source); } // do the name generation for the fake table DataComponentNameHandler functionsComponentHandler = new DataComponentNameHandler(); functionsComponentHandler.GlobalSources = true; functionsComponentHandler.GenerateMemberNames(functionsTable, codeProvider, this.languageCaseInsensitive, problemList); // copy the generated names back to the DesignDataSource, we'll use them when generating the FunctionsDataComponent dataSource.GeneratorFunctionsComponentClassName = functionsTable.GeneratorDataComponentClassName; } } internal static string FixIdName(string inVarName) { if (lookupIdentifiers == null) { InitLookupIdentifiers(); } string newName = (string)lookupIdentifiers[inVarName]; if (newName == null) { newName = MemberNameValidator.GenerateIdName(inVarName, codeProvider, false /*useSuffix*/); while (lookupIdentifiers.ContainsValue(newName)) { newName = '_' + newName; } lookupIdentifiers[inVarName] = newName; } return newName; } private static void InitLookupIdentifiers() { lookupIdentifiers = new Hashtable(); System.Reflection.PropertyInfo[] props = typeof(DataRow).GetProperties(); foreach (System.Reflection.PropertyInfo p in props) { lookupIdentifiers[p.Name] = '_' + p.Name; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AttributedMetaModel.cs
- HtmlHistory.cs
- GridViewSortEventArgs.cs
- TreeView.cs
- ResourceType.cs
- XmlSchemaChoice.cs
- LoadItemsEventArgs.cs
- XmlFormatWriterGenerator.cs
- TransactionInterop.cs
- autovalidator.cs
- _LocalDataStoreMgr.cs
- GridSplitterAutomationPeer.cs
- SimpleColumnProvider.cs
- WebBrowserProgressChangedEventHandler.cs
- SimpleWebHandlerParser.cs
- Expression.cs
- XmlDataProvider.cs
- HTMLTextWriter.cs
- ToolStrip.cs
- XamlToRtfParser.cs
- Privilege.cs
- Manipulation.cs
- ConditionalAttribute.cs
- ToolStripButton.cs
- ThaiBuddhistCalendar.cs
- VoiceInfo.cs
- Cursor.cs
- DataSpaceManager.cs
- DocumentGridContextMenu.cs
- MessageQueuePermissionEntryCollection.cs
- BitArray.cs
- EncryptedKeyIdentifierClause.cs
- XmlSchemaIdentityConstraint.cs
- ServiceReference.cs
- FixedSOMSemanticBox.cs
- XmlQuerySequence.cs
- MailHeaderInfo.cs
- DashStyles.cs
- UriTemplateEquivalenceComparer.cs
- TdsParserSafeHandles.cs
- ColumnResult.cs
- OracleNumber.cs
- StateMachineHelpers.cs
- WindowInteractionStateTracker.cs
- InternalCache.cs
- NativeMethodsCLR.cs
- wgx_render.cs
- GeneralTransform3D.cs
- WebPartDisplayMode.cs
- CodeStatementCollection.cs
- SystemNetHelpers.cs
- RSAPKCS1SignatureDeformatter.cs
- Attributes.cs
- RectangleConverter.cs
- ConditionalAttribute.cs
- JulianCalendar.cs
- Column.cs
- ComContractElement.cs
- BamlResourceSerializer.cs
- TextServicesCompartmentContext.cs
- BindingExpressionBase.cs
- SafeEventLogReadHandle.cs
- ChainOfResponsibility.cs
- ExceptionTranslationTable.cs
- propertyentry.cs
- GiveFeedbackEventArgs.cs
- complextypematerializer.cs
- ContextMenuStrip.cs
- ApplicationId.cs
- SafeFileMappingHandle.cs
- SelectionProcessor.cs
- IriParsingElement.cs
- FormsAuthenticationModule.cs
- EncodingDataItem.cs
- ParameterReplacerVisitor.cs
- AuthorizationRule.cs
- TransactionScope.cs
- DataGridViewRowHeaderCell.cs
- ThicknessAnimation.cs
- GetUserPreferenceRequest.cs
- RootDesignerSerializerAttribute.cs
- ImageAnimator.cs
- ProcessManager.cs
- HuffmanTree.cs
- ProfessionalColors.cs
- WebPartConnectionsCloseVerb.cs
- OutOfMemoryException.cs
- FormViewModeEventArgs.cs
- References.cs
- TransformerInfoCollection.cs
- AppDomainProtocolHandler.cs
- GPRECT.cs
- GeometryDrawing.cs
- ToggleProviderWrapper.cs
- ClassValidator.cs
- ColumnReorderedEventArgs.cs
- DurableInstancingOptions.cs
- EnumMemberAttribute.cs
- SerializationAttributes.cs
- SQLBinaryStorage.cs