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
- GeometryGroup.cs
- TextTreeNode.cs
- TypeSystem.cs
- Translator.cs
- DbParameterCollectionHelper.cs
- input.cs
- LabelTarget.cs
- PropertyPath.cs
- PropertyDescriptorGridEntry.cs
- IsolatedStoragePermission.cs
- VisemeEventArgs.cs
- CustomAttribute.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- StringSource.cs
- TextParagraphView.cs
- FilterableAttribute.cs
- DateTimeFormatInfoScanner.cs
- AccessKeyManager.cs
- CqlParserHelpers.cs
- MemberRelationshipService.cs
- ControllableStoryboardAction.cs
- OperationCanceledException.cs
- UdpChannelListener.cs
- StringSource.cs
- DocumentApplicationState.cs
- StandardCommandToolStripMenuItem.cs
- DataSourceProvider.cs
- SqlServer2KCompatibilityCheck.cs
- WMICapabilities.cs
- ServiceSecurityAuditElement.cs
- OleDbStruct.cs
- SearchExpression.cs
- SessionStateItemCollection.cs
- ProfileGroupSettings.cs
- DataSetFieldSchema.cs
- TextServicesManager.cs
- ExclusiveTcpListener.cs
- RowVisual.cs
- PhysicalAddress.cs
- WindowsStatic.cs
- MarkupCompiler.cs
- InvokePatternIdentifiers.cs
- TextProperties.cs
- SpeakCompletedEventArgs.cs
- SBCSCodePageEncoding.cs
- KeyInfo.cs
- Deserializer.cs
- GridViewSortEventArgs.cs
- Helpers.cs
- FrameworkTextComposition.cs
- WebPartVerbCollection.cs
- Vector3dCollection.cs
- CompilationUtil.cs
- TableLayoutRowStyleCollection.cs
- ListView.cs
- HtmlFormParameterReader.cs
- ConnectionPoint.cs
- DuplicateWaitObjectException.cs
- CheckableControlBaseAdapter.cs
- EditorPartChrome.cs
- UdpDuplexChannel.cs
- ValidatingReaderNodeData.cs
- AtomServiceDocumentSerializer.cs
- Constants.cs
- XmlElement.cs
- DataGridToolTip.cs
- Geometry.cs
- SmiEventSink.cs
- DataGridColumnHeaderAutomationPeer.cs
- InvalidChannelBindingException.cs
- ZoneLinkButton.cs
- LinqDataSourceInsertEventArgs.cs
- AssemblyNameEqualityComparer.cs
- DefaultTextStore.cs
- TiffBitmapDecoder.cs
- TreeNodeCollection.cs
- AppearanceEditorPart.cs
- RowBinding.cs
- AnnotationMap.cs
- UiaCoreTypesApi.cs
- EntityContainerEntitySet.cs
- GestureRecognizer.cs
- CalendarDateRangeChangingEventArgs.cs
- objectquery_tresulttype.cs
- SqlFacetAttribute.cs
- EndPoint.cs
- OracleParameterCollection.cs
- DurableInstanceProvider.cs
- ObjectConverter.cs
- RegexReplacement.cs
- HttpsChannelListener.cs
- ToolStripArrowRenderEventArgs.cs
- TraceSwitch.cs
- DataGridViewComboBoxColumn.cs
- TcpSocketManager.cs
- ToolStripRendererSwitcher.cs
- SafeCloseHandleCritical.cs
- GridProviderWrapper.cs
- Slider.cs
- FreezableDefaultValueFactory.cs