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
- UidManager.cs
- DrawListViewSubItemEventArgs.cs
- Helpers.cs
- MissingMethodException.cs
- Merger.cs
- TrackBarRenderer.cs
- SchemeSettingElementCollection.cs
- WindowsFormsHelpers.cs
- SerTrace.cs
- Range.cs
- NamespaceCollection.cs
- EventManager.cs
- GlobalizationAssembly.cs
- PolyQuadraticBezierSegment.cs
- ValidatorCollection.cs
- ProxyRpc.cs
- HtmlSelect.cs
- SqlGenericUtil.cs
- SamlEvidence.cs
- EntityDataSourceDataSelectionPanel.cs
- AttributeCollection.cs
- ProjectionPlan.cs
- StateFinalizationDesigner.cs
- Symbol.cs
- InternalConfigHost.cs
- CharacterMetricsDictionary.cs
- BufferBuilder.cs
- InternalMappingException.cs
- FlowLayoutPanel.cs
- PropertyDescriptorComparer.cs
- IOThreadScheduler.cs
- WSFederationHttpBindingElement.cs
- SessionParameter.cs
- SafeNativeMethodsCLR.cs
- ContentPresenter.cs
- DrawingContextFlattener.cs
- ListenerElementsCollection.cs
- PrimaryKeyTypeConverter.cs
- TableCell.cs
- PenContext.cs
- WrappedKeySecurityToken.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- AmbientLight.cs
- SafeWaitHandle.cs
- ItemAutomationPeer.cs
- FrameworkContentElement.cs
- FormatterConverter.cs
- BulletDecorator.cs
- ForeignKeyConstraint.cs
- ComponentEditorPage.cs
- RenderCapability.cs
- RegisteredExpandoAttribute.cs
- SynchronizationLockException.cs
- ArrangedElement.cs
- MetadataItemSerializer.cs
- AnchoredBlock.cs
- Section.cs
- BitmapImage.cs
- HtmlEncodedRawTextWriter.cs
- RSACryptoServiceProvider.cs
- codemethodreferenceexpression.cs
- IssuedTokenServiceElement.cs
- TabControl.cs
- EventRouteFactory.cs
- FlowDocumentScrollViewer.cs
- ConfigurationSettings.cs
- BadImageFormatException.cs
- Int32Rect.cs
- CqlBlock.cs
- EnvelopedPkcs7.cs
- TagPrefixInfo.cs
- LineBreak.cs
- SmiEventSink_DeferedProcessing.cs
- AsymmetricAlgorithm.cs
- Group.cs
- ThemeInfoAttribute.cs
- TraceHandlerErrorFormatter.cs
- RotateTransform3D.cs
- QueryableDataSource.cs
- MissingFieldException.cs
- MetaChildrenColumn.cs
- TreeNodeSelectionProcessor.cs
- XPathNavigatorReader.cs
- Vector3D.cs
- HtmlTernaryTree.cs
- WindowProviderWrapper.cs
- EnumConverter.cs
- AvTraceFormat.cs
- PerformanceCounterNameAttribute.cs
- XmlHierarchyData.cs
- CodeAttributeDeclaration.cs
- CodeGenerator.cs
- FormatVersion.cs
- FactoryRecord.cs
- DocumentCollection.cs
- HttpModule.cs
- ImageMap.cs
- WindowsSysHeader.cs
- GPPOINT.cs
- CompilerParameters.cs