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
- ResourceProperty.cs
- JoinQueryOperator.cs
- ConfigurationLocationCollection.cs
- SetterBase.cs
- QueryCacheManager.cs
- InputLanguageManager.cs
- BypassElement.cs
- TraceHwndHost.cs
- TextServicesHost.cs
- ResourceReferenceExpressionConverter.cs
- TextServicesCompartment.cs
- ClientUtils.cs
- UpDownBase.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- MemberAccessException.cs
- NavigationEventArgs.cs
- SectionInformation.cs
- InitializationEventAttribute.cs
- MiniConstructorInfo.cs
- BasicCellRelation.cs
- EntitySqlQueryBuilder.cs
- HttpPostLocalhostServerProtocol.cs
- XmlNamespaceDeclarationsAttribute.cs
- EraserBehavior.cs
- ResXResourceSet.cs
- StrongTypingException.cs
- WebPart.cs
- SystemNetworkInterface.cs
- FormViewDeleteEventArgs.cs
- CompilationUtil.cs
- DataGridCellsPresenter.cs
- MsmqHostedTransportManager.cs
- validation.cs
- GenericIdentity.cs
- Processor.cs
- ProcessProtocolHandler.cs
- DataColumnCollection.cs
- Binding.cs
- LabelLiteral.cs
- ConfigXmlReader.cs
- WebBaseEventKeyComparer.cs
- Soap12ServerProtocol.cs
- ListViewEditEventArgs.cs
- EntityProviderServices.cs
- GlobalProxySelection.cs
- TextRangeSerialization.cs
- Main.cs
- ControlBuilder.cs
- _KerberosClient.cs
- RenderingBiasValidation.cs
- Range.cs
- CustomAttribute.cs
- PriorityItem.cs
- InstanceCreationEditor.cs
- WindowsRichEdit.cs
- WebPartConnectionsCloseVerb.cs
- EDesignUtil.cs
- Point3DCollectionValueSerializer.cs
- XmlNotation.cs
- QilFunction.cs
- EventsTab.cs
- SQLMembershipProvider.cs
- PostBackOptions.cs
- AppDomain.cs
- UIAgentMonitor.cs
- XmlSchemas.cs
- DataGridViewTextBoxColumn.cs
- __Filters.cs
- TransactedReceiveData.cs
- XmlSecureResolver.cs
- SchemaElementLookUpTableEnumerator.cs
- SelectionPattern.cs
- FacetDescription.cs
- MessageEnumerator.cs
- SizeFConverter.cs
- ConnectivityStatus.cs
- InputMethod.cs
- EntityDataSourceViewSchema.cs
- SchemaManager.cs
- ValidationEventArgs.cs
- AppDomainCompilerProxy.cs
- SspiHelper.cs
- HitTestParameters3D.cs
- QilStrConcatenator.cs
- OracleCommandBuilder.cs
- XmlSchemaInferenceException.cs
- LocalizationParserHooks.cs
- TableLayoutStyleCollection.cs
- ByteArrayHelperWithString.cs
- CompositeScriptReferenceEventArgs.cs
- IntellisenseTextBox.cs
- DrawingContext.cs
- EmptyStringExpandableObjectConverter.cs
- DynamicPropertyReader.cs
- BitmapEffectInputData.cs
- TextRangeEditLists.cs
- LocalizeDesigner.cs
- SimpleTypeResolver.cs
- DetailsViewInsertEventArgs.cs
- Token.cs