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
- SafePointer.cs
- PropertyChangeTracker.cs
- WindowVisualStateTracker.cs
- AngleUtil.cs
- HttpCapabilitiesSectionHandler.cs
- InternalDispatchObject.cs
- StylusDevice.cs
- FactoryGenerator.cs
- Method.cs
- DesignerVerb.cs
- MemoryPressure.cs
- FontWeights.cs
- LineSegment.cs
- CompoundFileStreamReference.cs
- CompilerError.cs
- PasswordPropertyTextAttribute.cs
- XpsSerializerFactory.cs
- ApplicationCommands.cs
- FlowDocumentPage.cs
- DynamicDocumentPaginator.cs
- WithStatement.cs
- JumpItem.cs
- LinkLabelLinkClickedEvent.cs
- StoryFragments.cs
- LazyTextWriterCreator.cs
- Stacktrace.cs
- PropertyInfoSet.cs
- SqlHelper.cs
- SelectionHighlightInfo.cs
- TreeWalker.cs
- TextFormatterHost.cs
- EntityType.cs
- TextViewBase.cs
- OuterGlowBitmapEffect.cs
- HttpFileCollection.cs
- StylusPointPropertyId.cs
- HttpListenerElement.cs
- IdentityNotMappedException.cs
- DataStreams.cs
- Queue.cs
- DPAPIProtectedConfigurationProvider.cs
- RowTypeElement.cs
- StackBuilderSink.cs
- ChannelSinkStacks.cs
- EntityDataSourceState.cs
- TCPListener.cs
- DesignerAttribute.cs
- ProtectedProviderSettings.cs
- CheckBoxPopupAdapter.cs
- InputLangChangeEvent.cs
- TriggerAction.cs
- BuildDependencySet.cs
- ObjectHandle.cs
- ThemeInfoAttribute.cs
- DataContractSerializerMessageContractImporter.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- BulletedList.cs
- ResizeGrip.cs
- Int32AnimationBase.cs
- EventInfo.cs
- TimeoutValidationAttribute.cs
- CustomError.cs
- JumpPath.cs
- BulletChrome.cs
- XPathNavigatorReader.cs
- AmbiguousMatchException.cs
- ActivitySurrogateSelector.cs
- Publisher.cs
- processwaithandle.cs
- XmlSchemaSearchPattern.cs
- _DisconnectOverlappedAsyncResult.cs
- TableLayoutPanelCellPosition.cs
- StylesEditorDialog.cs
- ImageListStreamer.cs
- ReferenceSchema.cs
- IncomingWebRequestContext.cs
- TrustManagerMoreInformation.cs
- PocoPropertyAccessorStrategy.cs
- Typography.cs
- TextBlock.cs
- Point3DAnimationBase.cs
- ScriptDescriptor.cs
- TextCharacters.cs
- NamedPermissionSet.cs
- XmlConvert.cs
- SafeLibraryHandle.cs
- FormViewInsertEventArgs.cs
- BaseTemplatedMobileComponentEditor.cs
- DataServiceKeyAttribute.cs
- SystemResourceHost.cs
- XPathEmptyIterator.cs
- PrintDialog.cs
- MatrixValueSerializer.cs
- XmlChoiceIdentifierAttribute.cs
- LocalValueEnumerator.cs
- SelectionItemPattern.cs
- PackageDigitalSignature.cs
- DateTimeFormatInfo.cs
- SqlWebEventProvider.cs
- Brushes.cs