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
- StrokeCollectionConverter.cs
- ColorAnimationBase.cs
- CapabilitiesState.cs
- FormParameter.cs
- DrawingImage.cs
- WindowProviderWrapper.cs
- MetadataCache.cs
- BaseTreeIterator.cs
- ReflectPropertyDescriptor.cs
- Bezier.cs
- JsonFormatReaderGenerator.cs
- RecordManager.cs
- RawMouseInputReport.cs
- __Filters.cs
- CatalogZoneBase.cs
- BitmapEffectGeneralTransform.cs
- MDIClient.cs
- TextFormatter.cs
- EllipseGeometry.cs
- ReaderWriterLockSlim.cs
- DiscoveryDocumentSearchPattern.cs
- GridViewSelectEventArgs.cs
- NamespaceCollection.cs
- CompensationParticipant.cs
- InvalidateEvent.cs
- ExtractorMetadata.cs
- EndpointDispatcherTable.cs
- FileInfo.cs
- SystemIPInterfaceProperties.cs
- MessageUtil.cs
- EncodingTable.cs
- TextSearch.cs
- NativeMethods.cs
- basemetadatamappingvisitor.cs
- XmlSchemaAttributeGroupRef.cs
- Collection.cs
- DataControlImageButton.cs
- SQLDouble.cs
- LassoHelper.cs
- CertificateManager.cs
- AbstractDataSvcMapFileLoader.cs
- DisplayClaim.cs
- PartialCachingAttribute.cs
- MethodBuilder.cs
- ReliableOutputSessionChannel.cs
- RequestCacheManager.cs
- HttpResponseInternalWrapper.cs
- versioninfo.cs
- Method.cs
- LinqTreeNodeEvaluator.cs
- MetadataPropertyAttribute.cs
- AuthenticationModuleElement.cs
- ComplexType.cs
- WebPartZoneDesigner.cs
- SmtpMail.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- DecimalConverter.cs
- sqlnorm.cs
- EntitySqlQueryState.cs
- SafeEventLogWriteHandle.cs
- Dynamic.cs
- DataGridViewBindingCompleteEventArgs.cs
- MultiTrigger.cs
- CollectionBase.cs
- Preprocessor.cs
- AuthorizationRuleCollection.cs
- HttpRuntime.cs
- CalendarTable.cs
- HtmlElementCollection.cs
- SoapAttributes.cs
- VariableAction.cs
- TrueReadOnlyCollection.cs
- LogicalExpr.cs
- WebBrowserSiteBase.cs
- MailDefinition.cs
- SystemIPv6InterfaceProperties.cs
- SrgsItemList.cs
- ComponentSerializationService.cs
- TextElementCollectionHelper.cs
- SymmetricAlgorithm.cs
- WebControlsSection.cs
- DbProviderManifest.cs
- LoadGrammarCompletedEventArgs.cs
- InlinedAggregationOperator.cs
- ChildDocumentBlock.cs
- CorrelationManager.cs
- SamlAssertion.cs
- FocusChangedEventArgs.cs
- StorageEntitySetMapping.cs
- Vector3DKeyFrameCollection.cs
- AtlasWeb.Designer.cs
- TablePatternIdentifiers.cs
- HttpProfileGroupBase.cs
- SqlCachedBuffer.cs
- DecimalAnimation.cs
- ListViewTableCell.cs
- Column.cs
- RotateTransform3D.cs
- PrintPageEvent.cs
- FileLoadException.cs