Code:
/ DotNET / DotNET / 8.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
- GradientStop.cs
- ToolStripComboBox.cs
- ManipulationCompletedEventArgs.cs
- DetailsViewModeEventArgs.cs
- UntrustedRecipientException.cs
- _TLSstream.cs
- ReflectionUtil.cs
- PolicyFactory.cs
- TextElementEditingBehaviorAttribute.cs
- SafeHandles.cs
- CommittableTransaction.cs
- DiscoveryOperationContext.cs
- TypeDescriptionProvider.cs
- SimpleWebHandlerParser.cs
- ToolTip.cs
- CheckBoxFlatAdapter.cs
- SqlMethodCallConverter.cs
- PropertyDescriptorComparer.cs
- StrongNameSignatureInformation.cs
- InstanceNameConverter.cs
- StrokeNode.cs
- InvalidPrinterException.cs
- PeerCollaboration.cs
- StrokeNode.cs
- SmiEventSink.cs
- Effect.cs
- CellParagraph.cs
- SafeEventLogWriteHandle.cs
- ParameterCollection.cs
- ByteConverter.cs
- BrowserTree.cs
- LinearGradientBrush.cs
- BulletDecorator.cs
- UIHelper.cs
- PageTheme.cs
- DictionaryTraceRecord.cs
- COM2ColorConverter.cs
- JavaScriptObjectDeserializer.cs
- Configuration.cs
- CommunicationObject.cs
- XPathDocumentNavigator.cs
- Int32RectConverter.cs
- DefaultAuthorizationContext.cs
- _StreamFramer.cs
- CapacityStreamGeometryContext.cs
- AttachedPropertyDescriptor.cs
- DispatcherExceptionFilterEventArgs.cs
- XmlSerializerVersionAttribute.cs
- PathFigure.cs
- ChildTable.cs
- AssociatedControlConverter.cs
- InvokeDelegate.cs
- FileFormatException.cs
- ConfigurationManager.cs
- PartBasedPackageProperties.cs
- PhysicalFontFamily.cs
- _AutoWebProxyScriptEngine.cs
- EncryptedKeyIdentifierClause.cs
- _SslState.cs
- RelationshipDetailsCollection.cs
- AggregateNode.cs
- FixUpCollection.cs
- CustomCredentialPolicy.cs
- linebase.cs
- FtpWebResponse.cs
- SharedConnectionWorkflowTransactionService.cs
- AnnotationHighlightLayer.cs
- HttpAsyncResult.cs
- Simplifier.cs
- PropertyToken.cs
- ImageAutomationPeer.cs
- AmbientProperties.cs
- SmtpNtlmAuthenticationModule.cs
- CodeGotoStatement.cs
- ClipboardProcessor.cs
- ScrollBar.cs
- Pkcs7Signer.cs
- Identity.cs
- TemplateControlParser.cs
- BrowserCapabilitiesCompiler.cs
- TemplatedMailWebEventProvider.cs
- DetailsViewRow.cs
- SelectionList.cs
- UIElementCollection.cs
- IISUnsafeMethods.cs
- DbConnectionFactory.cs
- XmlException.cs
- ArgumentOutOfRangeException.cs
- ArrayTypeMismatchException.cs
- CharAnimationBase.cs
- URLMembershipCondition.cs
- RegexGroup.cs
- _Win32.cs
- diagnosticsswitches.cs
- SerializationSectionGroup.cs
- DataGridViewCellStyle.cs
- SoapFault.cs
- PropertyInfoSet.cs
- SecurityTokenAuthenticator.cs
- HashAlgorithm.cs