Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / FacetEnabledSchemaElement.cs / 1305376 / FacetEnabledSchemaElement.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Metadata.Edm; using System.Diagnostics; using System.Xml; namespace System.Data.EntityModel.SchemaObjectModel { abstract class FacetEnabledSchemaElement : SchemaElement { protected SchemaType _type = null; protected string _unresolvedType = null; protected TypeUsageBuilder _typeUsageBuilder; #region public properties internal new Function ParentElement { get { return base.ParentElement as Function; } } internal SchemaType Type { get { return _type; } } internal virtual TypeUsage TypeUsage { get { return _typeUsageBuilder.TypeUsage; } } internal bool HasUserDefinedFacets { get { return _typeUsageBuilder.HasUserDefinedFacets; } } #endregion #region Internal Properties internal string UnresolvedType { get { return _unresolvedType; } set { _unresolvedType = value; } } #endregion #region Public Methods ////// /// /// internal FacetEnabledSchemaElement(Function parentElement) : base(parentElement) { } internal FacetEnabledSchemaElement(SchemaElement parentElement) : base(parentElement) { } #endregion #region Internal Methods internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); Debug.Assert(this.Type == null, "This must be resolved exactly once"); if (Schema.ResolveTypeName(this, UnresolvedType, out _type)) { if (!(_type is ScalarType) && Schema.DataModel != SchemaDataModelOption.EntityDataModel) { AddError(ErrorCode.FunctionWithNonScalarTypeNotSupported, EdmSchemaErrorSeverity.Error, this, System.Data.Entity.Strings.FunctionWithNonScalarTypeNotSupported(_type.FQName, this.ParentElement.FQName)); return; } if (Schema.DataModel == SchemaDataModelOption.ProviderManifestModel && _typeUsageBuilder.HasUserDefinedFacets) { bool isInProviderManifest = Schema.DataModel == SchemaDataModelOption.ProviderManifestModel; _typeUsageBuilder.ValidateAndSetTypeUsage((ScalarType)_type, !isInProviderManifest); } } } internal void ValidateAndSetTypeUsage(ScalarType scalar) { _typeUsageBuilder.ValidateAndSetTypeUsage(scalar, false); } #endregion protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } else if (_typeUsageBuilder.HandleAttribute(reader)) { return true; } return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Metadata.Edm; using System.Diagnostics; using System.Xml; namespace System.Data.EntityModel.SchemaObjectModel { abstract class FacetEnabledSchemaElement : SchemaElement { protected SchemaType _type = null; protected string _unresolvedType = null; protected TypeUsageBuilder _typeUsageBuilder; #region public properties internal new Function ParentElement { get { return base.ParentElement as Function; } } internal SchemaType Type { get { return _type; } } internal virtual TypeUsage TypeUsage { get { return _typeUsageBuilder.TypeUsage; } } internal bool HasUserDefinedFacets { get { return _typeUsageBuilder.HasUserDefinedFacets; } } #endregion #region Internal Properties internal string UnresolvedType { get { return _unresolvedType; } set { _unresolvedType = value; } } #endregion #region Public Methods ////// /// /// internal FacetEnabledSchemaElement(Function parentElement) : base(parentElement) { } internal FacetEnabledSchemaElement(SchemaElement parentElement) : base(parentElement) { } #endregion #region Internal Methods internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); Debug.Assert(this.Type == null, "This must be resolved exactly once"); if (Schema.ResolveTypeName(this, UnresolvedType, out _type)) { if (!(_type is ScalarType) && Schema.DataModel != SchemaDataModelOption.EntityDataModel) { AddError(ErrorCode.FunctionWithNonScalarTypeNotSupported, EdmSchemaErrorSeverity.Error, this, System.Data.Entity.Strings.FunctionWithNonScalarTypeNotSupported(_type.FQName, this.ParentElement.FQName)); return; } if (Schema.DataModel == SchemaDataModelOption.ProviderManifestModel && _typeUsageBuilder.HasUserDefinedFacets) { bool isInProviderManifest = Schema.DataModel == SchemaDataModelOption.ProviderManifestModel; _typeUsageBuilder.ValidateAndSetTypeUsage((ScalarType)_type, !isInProviderManifest); } } } internal void ValidateAndSetTypeUsage(ScalarType scalar) { _typeUsageBuilder.ValidateAndSetTypeUsage(scalar, false); } #endregion protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } else if (_typeUsageBuilder.HandleAttribute(reader)) { return true; } return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlPersonalizationProvider.cs
- COMException.cs
- DataGridClipboardHelper.cs
- ForeignKeyConstraint.cs
- QualifiedCellIdBoolean.cs
- ComplexPropertyEntry.cs
- Menu.cs
- ProviderBase.cs
- ValidationHelpers.cs
- AnimationStorage.cs
- TextInfo.cs
- Opcode.cs
- querybuilder.cs
- DockingAttribute.cs
- ServicePerformanceCounters.cs
- WebPartZoneBase.cs
- MimeWriter.cs
- RequestCache.cs
- TextDecoration.cs
- ValidatedControlConverter.cs
- ObjectSpanRewriter.cs
- FrameworkObject.cs
- PrintPreviewDialog.cs
- DrawItemEvent.cs
- WebResourceUtil.cs
- DataGridClipboardCellContent.cs
- SoapAttributes.cs
- RemoteWebConfigurationHostServer.cs
- CalendarSelectionChangedEventArgs.cs
- DisableDpiAwarenessAttribute.cs
- DataGridViewRowCancelEventArgs.cs
- SecurityDocument.cs
- ToolStripItemTextRenderEventArgs.cs
- OracleBinary.cs
- DrawingGroup.cs
- DesignBindingValueUIHandler.cs
- SiteMapNodeItemEventArgs.cs
- GradientBrush.cs
- DataBinder.cs
- DebuggerAttributes.cs
- HtmlControl.cs
- _AuthenticationState.cs
- Hash.cs
- VideoDrawing.cs
- ObjectDataSourceEventArgs.cs
- Axis.cs
- IImplicitResourceProvider.cs
- WebMessageFormatHelper.cs
- TrackingProfile.cs
- StylusOverProperty.cs
- OperatingSystemVersionCheck.cs
- Accessible.cs
- MDIWindowDialog.cs
- PersonalizableAttribute.cs
- XmlSchemaSubstitutionGroup.cs
- DebugViewWriter.cs
- oledbmetadatacolumnnames.cs
- EventArgs.cs
- PrintingPermissionAttribute.cs
- SuppressIldasmAttribute.cs
- ComponentResourceKey.cs
- DesignerOptions.cs
- ReaderWriterLock.cs
- OdbcHandle.cs
- XmlObjectSerializerWriteContext.cs
- ObjectComplexPropertyMapping.cs
- RequestQueryParser.cs
- ObjectStateManagerMetadata.cs
- PieceDirectory.cs
- XmlDocumentType.cs
- CheckBoxBaseAdapter.cs
- HTMLTagNameToTypeMapper.cs
- DesignerTransaction.cs
- ListViewItem.cs
- FloaterParaClient.cs
- XmlSchemaExternal.cs
- ToolStripOverflow.cs
- FormsAuthenticationModule.cs
- XmlSchemaAnyAttribute.cs
- CodeCatchClauseCollection.cs
- ValidationPropertyAttribute.cs
- XPathNodeList.cs
- CollectionType.cs
- RecipientIdentity.cs
- ByteAnimationBase.cs
- CompensationDesigner.cs
- ExpressionPrefixAttribute.cs
- CompoundFileDeflateTransform.cs
- QilList.cs
- CodeGotoStatement.cs
- HtmlTableRowCollection.cs
- CodeChecksumPragma.cs
- OdbcErrorCollection.cs
- MonthCalendar.cs
- CompilationRelaxations.cs
- ConnectionStringsExpressionEditor.cs
- GeometryCombineModeValidation.cs
- SortedList.cs
- SchemaEntity.cs
- TextFormatterContext.cs