Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / DataSourceNameHandler.cs / 2 / DataSourceNameHandler.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.Design; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.CodeDom.Compiler; internal sealed class DataSourceNameHandler { private MemberNameValidator validator = null; private bool languageCaseInsensitive = false; private static string tablesPropertyName = "Tables"; private static string relationsPropertyName = "Relations"; //private static string enforceConstraintsPropertyName = "EnforceConstraints"; internal void GenerateMemberNames(DesignDataSource dataSource, CodeDomProvider codeProvider, bool languageCaseInsensitive, ArrayList problemList) { this.languageCaseInsensitive = languageCaseInsensitive; validator = new MemberNameValidator(new string[] { tablesPropertyName, relationsPropertyName/*, enforceConstraintsPropertyName*/ }, codeProvider, this.languageCaseInsensitive); // generate names for added/renamed members, ProcessMemberNames(dataSource); } internal void ProcessMemberNames(DesignDataSource dataSource) { ProcessDataSourceName(dataSource); // process table and row related names if(dataSource.DesignTables != null) { foreach(DesignTable table in dataSource.DesignTables) { this.ProcessTableRelatedNames(table); } } // process relation related names if(dataSource.DesignRelations != null) { foreach(DesignRelation relation in dataSource.DesignRelations) { ProcessRelationRelatedNames(relation); } } } internal void ProcessDataSourceName(DesignDataSource dataSource) { if(StringUtil.Empty(dataSource.Name)) { throw new DataSourceGeneratorException(SR.GetString(SR.CG_EmptyDSName)); } bool objectRenamed = !StringUtil.EqualValue(dataSource.Name, dataSource.UserDataSetName, this.languageCaseInsensitive); if (objectRenamed || StringUtil.Empty(dataSource.GeneratorDataSetName)) { dataSource.GeneratorDataSetName = NameHandler.FixIdName(dataSource.Name); } else { dataSource.GeneratorDataSetName = this.validator.GenerateIdName(dataSource.GeneratorDataSetName); } dataSource.UserDataSetName = dataSource.Name; if (!StringUtil.EqualValue(NameHandler.FixIdName(dataSource.Name), dataSource.GeneratorDataSetName)) { dataSource.NamingPropertyNames.Add(DesignDataSource.EXTPROPNAME_USER_DATASETNAME); dataSource.NamingPropertyNames.Add(DesignDataSource.EXTPROPNAME_GENERATOR_DATASETNAME); } } internal void ProcessTableRelatedNames(DesignTable table) { bool annotation = false; bool storedNamingProperty = false; bool objectRenamed = !StringUtil.EqualValue(table.Name, table.UserTableName, this.languageCaseInsensitive); string tablePropName = this.TablePropertyName(table.DataTable, out annotation); string plainTablePropName = this.PlainTablePropertyName(table.DataTable, out annotation); if (annotation) { table.GeneratorTablePropName = plainTablePropName; } else { if (objectRenamed || StringUtil.Empty(table.GeneratorTablePropName)) { table.GeneratorTablePropName = this.validator.GenerateIdName(tablePropName); } else { table.GeneratorTablePropName = this.validator.GenerateIdName(table.GeneratorTablePropName); } if (!StringUtil.EqualValue(this.validator.GenerateIdName(tablePropName), table.GeneratorTablePropName)) { table.NamingPropertyNames.Add(DesignTable.EXTPROPNAME_GENERATOR_TABLEPROPNAME); storedNamingProperty = true; } } string tableVarName = this.TableVariableName(table.DataTable, out annotation); string plainTableVarName = this.PlainTableVariableName(table.DataTable, out annotation); if (annotation) { table.GeneratorTableVarName = plainTableVarName; } else { if (objectRenamed || StringUtil.Empty(table.GeneratorTableVarName)) { table.GeneratorTableVarName = this.validator.GenerateIdName(tableVarName); } else { table.GeneratorTableVarName = this.validator.GenerateIdName(table.GeneratorTableVarName); } if (!StringUtil.EqualValue(this.validator.GenerateIdName(tableVarName), table.GeneratorTableVarName)) { table.NamingPropertyNames.Add(DesignTable.EXTPROPNAME_GENERATOR_TABLEVARNAME); storedNamingProperty = true; } } string tableClassName = this.TableClassName(table.DataTable, out annotation); string plainTableClassName = this.PlainTableClassName(table.DataTable, out annotation); if (annotation) { table.GeneratorTableClassName = plainTableClassName; } else { if (objectRenamed || StringUtil.Empty(table.GeneratorTableClassName)) { table.GeneratorTableClassName = this.validator.GenerateIdName(tableClassName); } else { table.GeneratorTableClassName = this.validator.GenerateIdName(table.GeneratorTableClassName); } if (!StringUtil.EqualValue(this.validator.GenerateIdName(tableClassName), table.GeneratorTableClassName)) { table.NamingPropertyNames.Add(DesignTable.EXTPROPNAME_GENERATOR_TABLECLASSNAME); storedNamingProperty = true; } } string rowClassName = this.RowClassName(table.DataTable, out annotation); string plainRowClassName = this.PlainRowClassName(table.DataTable, out annotation); if (annotation) { table.GeneratorRowClassName = plainRowClassName; } else { if (objectRenamed || StringUtil.Empty(table.GeneratorRowClassName)) { table.GeneratorRowClassName = this.validator.GenerateIdName(rowClassName); } else { table.GeneratorRowClassName = this.validator.GenerateIdName(table.GeneratorRowClassName); } if (!StringUtil.EqualValue(this.validator.GenerateIdName(rowClassName), table.GeneratorRowClassName)) { table.NamingPropertyNames.Add(DesignTable.EXTPROPNAME_GENERATOR_ROWCLASSNAME); storedNamingProperty = true; } } string rowEventHandlerName = this.RowEventHandlerName(table.DataTable, out annotation); string plainRowEventHandlerName = this.PlainRowEventHandlerName(table.DataTable, out annotation); if (annotation) { table.GeneratorRowEvHandlerName = plainRowEventHandlerName; } else { if (objectRenamed || StringUtil.Empty(table.GeneratorRowEvHandlerName)) { table.GeneratorRowEvHandlerName = this.validator.GenerateIdName(rowEventHandlerName); } else { table.GeneratorRowEvHandlerName = this.validator.GenerateIdName(table.GeneratorRowEvHandlerName); } if (!StringUtil.EqualValue(this.validator.GenerateIdName(rowEventHandlerName), table.GeneratorRowEvHandlerName)) { table.NamingPropertyNames.Add(DesignTable.EXTPROPNAME_GENERATOR_ROWEVHANDLERNAME); storedNamingProperty = true; } } string rowEventArgName = this.RowEventArgClassName(table.DataTable, out annotation); string plainRowEventArgName = this.PlainRowEventArgClassName(table.DataTable, out annotation); if (annotation) { table.GeneratorRowEvArgName = plainRowEventArgName; } else { if (objectRenamed || StringUtil.Empty(table.GeneratorRowEvArgName)) { table.GeneratorRowEvArgName = this.validator.GenerateIdName(rowEventArgName); } else { table.GeneratorRowEvArgName = this.validator.GenerateIdName(table.GeneratorRowEvArgName); } if (!StringUtil.EqualValue(this.validator.GenerateIdName(rowEventArgName), table.GeneratorRowEvArgName)) { table.NamingPropertyNames.Add(DesignTable.EXTPROPNAME_GENERATOR_ROWEVARGNAME); storedNamingProperty = true; } } if (storedNamingProperty) { table.NamingPropertyNames.Add(DesignTable.EXTPROPNAME_USER_TABLENAME); } } internal void ProcessRelationRelatedNames(DesignRelation relation) { if(relation.DataRelation == null) { return; } bool objectRenamed = !StringUtil.EqualValue(relation.Name, relation.UserRelationName, this.languageCaseInsensitive); if (objectRenamed || StringUtil.Empty(relation.GeneratorRelationVarName)) { relation.GeneratorRelationVarName = this.validator.GenerateIdName(this.RelationVariableName(relation.DataRelation)); } else { relation.GeneratorRelationVarName = this.validator.GenerateIdName(relation.GeneratorRelationVarName); } } internal static string TablesPropertyName { get { return tablesPropertyName; } } internal static string RelationsPropertyName { get { return relationsPropertyName; } } //internal static string EnforceConstraintsPropertyName { // get { // return enforceConstraintsPropertyName; // } //} // Typed table class name private string TableClassName(DataTable table, out bool usesAnnotations) { usesAnnotations = true; string className = (string)table.ExtendedProperties["typedPlural"]; if(StringUtil.Empty(className)) { className = (string)table.ExtendedProperties["typedName"]; if(StringUtil.Empty(className)) { usesAnnotations = false; className = NameHandler.FixIdName(table.TableName); } } return className + "DataTable"; } private string PlainTableClassName(DataTable table, out bool usesAnnotations) { usesAnnotations = true; string className = (string)table.ExtendedProperties["typedPlural"]; if (StringUtil.Empty(className)) { className = (string)table.ExtendedProperties["typedName"]; if (StringUtil.Empty(className)) { usesAnnotations = false; className = table.TableName; } } return className + "DataTable"; } // Name of the property of typed dataset wich returns typed table: private string TablePropertyName(DataTable table, out bool usesAnnotations) { usesAnnotations = true; string typedName = (string)table.ExtendedProperties["typedPlural"]; if(StringUtil.Empty(typedName)) { typedName = (string)table.ExtendedProperties["typedName"]; if(StringUtil.Empty(typedName)) { usesAnnotations = false; typedName = NameHandler.FixIdName(table.TableName); } else { typedName = typedName + "Table"; } } return typedName; } private string PlainTablePropertyName(DataTable table, out bool usesAnnotations) { usesAnnotations = true; string typedName = (string)table.ExtendedProperties["typedPlural"]; if (StringUtil.Empty(typedName)) { typedName = (string)table.ExtendedProperties["typedName"]; if (StringUtil.Empty(typedName)) { usesAnnotations = false; typedName = table.TableName; } else { typedName = typedName + "Table"; } } return typedName; } // Name of the variable of typed dataset wich holds typed table private string TableVariableName(DataTable table, out bool usesAnnotations) { return "table" + TablePropertyName(table, out usesAnnotations); } private string PlainTableVariableName(DataTable table, out bool usesAnnotations) { return "table" + PlainTablePropertyName(table, out usesAnnotations); } // Name of a class for typed row private string RowClassName(DataTable table, out bool usesAnnotations) { usesAnnotations = true; string className = (string) table.ExtendedProperties["typedName"]; if(StringUtil.Empty(className)) { usesAnnotations = false; className = NameHandler.FixIdName(table.TableName) + "Row"; } return className; } private string PlainRowClassName(DataTable table, out bool usesAnnotations) { usesAnnotations = true; string className = (string)table.ExtendedProperties["typedName"]; if (StringUtil.Empty(className)) { usesAnnotations = false; className = table.TableName + "Row"; } return className; } // Name of row event arg class private string RowEventArgClassName(DataTable table, out bool usesAnnotations) { return RowClassName(table, out usesAnnotations) + "ChangeEvent"; } private string PlainRowEventArgClassName(DataTable table, out bool usesAnnotations) { return PlainRowClassName(table, out usesAnnotations) + "ChangeEvent"; } // Name of row event handler private string RowEventHandlerName(DataTable table, out bool usesAnnotations) { return RowClassName(table, out usesAnnotations) + "ChangeEventHandler"; } private string PlainRowEventHandlerName(DataTable table, out bool usesAnnotations) { return PlainRowClassName(table, out usesAnnotations) + "ChangeEventHandler"; } // Name of private variable for relation private string RelationVariableName(DataRelation relation) { return NameHandler.FixIdName("relation" + relation.RelationName); } } } // 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
- MultipartContentParser.cs
- Point3D.cs
- SqlNodeAnnotations.cs
- DSASignatureDeformatter.cs
- StringAttributeCollection.cs
- Queue.cs
- Behavior.cs
- WrappedKeySecurityToken.cs
- ObjectDisposedException.cs
- GeneralTransformCollection.cs
- Delegate.cs
- CallbackHandler.cs
- ExtensionQuery.cs
- Figure.cs
- Membership.cs
- DynamicObject.cs
- Compilation.cs
- PersonalizationState.cs
- EmptyElement.cs
- BinaryCommonClasses.cs
- DropDownButton.cs
- DataViewListener.cs
- QuaternionKeyFrameCollection.cs
- DashStyles.cs
- HtmlInputRadioButton.cs
- IntellisenseTextBox.cs
- WindowsAuthenticationEventArgs.cs
- XamlWrappingReader.cs
- TraceListeners.cs
- ThreadPool.cs
- ModelVisual3D.cs
- PageParser.cs
- StringFunctions.cs
- FormsAuthenticationUserCollection.cs
- Int64.cs
- EntityWithKeyStrategy.cs
- StatusBarPanel.cs
- BasicHttpMessageCredentialType.cs
- ParsedAttributeCollection.cs
- LifetimeServices.cs
- ChangePasswordDesigner.cs
- EncryptedPackage.cs
- DialogResultConverter.cs
- CodeSnippetExpression.cs
- SystemIPInterfaceProperties.cs
- TagNameToTypeMapper.cs
- ConditionChanges.cs
- TraceUtility.cs
- EntityDataSourceState.cs
- SafeLibraryHandle.cs
- DefaultSerializationProviderAttribute.cs
- SqlDataSourceCommandEventArgs.cs
- WebRequestModuleElement.cs
- HWStack.cs
- ReservationCollection.cs
- ComboBoxItem.cs
- EventItfInfo.cs
- Avt.cs
- ValidatorCompatibilityHelper.cs
- CorrelationHandle.cs
- Object.cs
- RC2CryptoServiceProvider.cs
- SmiEventSink.cs
- ResourceManager.cs
- MenuItem.cs
- OleDbStruct.cs
- CapabilitiesAssignment.cs
- VectorConverter.cs
- SelectionRangeConverter.cs
- ConfigurationSettings.cs
- CodeCatchClauseCollection.cs
- AlphaSortedEnumConverter.cs
- SQLCharsStorage.cs
- FontDriver.cs
- Parser.cs
- CheckBoxList.cs
- ProjectionPathBuilder.cs
- PseudoWebRequest.cs
- XmlAttributes.cs
- WebPartVerbCollection.cs
- JsonCollectionDataContract.cs
- UrlAuthFailedErrorFormatter.cs
- MessagePropertyVariants.cs
- FixedFindEngine.cs
- DetailsViewUpdateEventArgs.cs
- TextClipboardData.cs
- ModelUIElement3D.cs
- DbDataReader.cs
- SchemaDeclBase.cs
- OdbcConnection.cs
- FormViewCommandEventArgs.cs
- SafeEventHandle.cs
- BinaryQueryOperator.cs
- SymbolType.cs
- DataGridPagerStyle.cs
- PropertyValue.cs
- HostProtectionException.cs
- TableLayoutPanel.cs
- InternalBase.cs
- XmlElementCollection.cs