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
- KeysConverter.cs
- JoinGraph.cs
- DBCommand.cs
- KnownBoxes.cs
- ICspAsymmetricAlgorithm.cs
- SoapProcessingBehavior.cs
- Root.cs
- NativeBuffer.cs
- BufferedStream.cs
- FrameworkContentElement.cs
- InlineObject.cs
- HtmlTitle.cs
- NamedPermissionSet.cs
- Pointer.cs
- RegionInfo.cs
- ConnectionsZoneAutoFormat.cs
- Size3DValueSerializer.cs
- XPathSelectionIterator.cs
- CfgParser.cs
- WebHttpElement.cs
- cache.cs
- NamespaceDecl.cs
- PrintPreviewControl.cs
- ToolStripOverflowButton.cs
- cookie.cs
- LayoutTableCell.cs
- BindingExpression.cs
- ReachPrintTicketSerializerAsync.cs
- COAUTHINFO.cs
- CurrencyWrapper.cs
- PageFunction.cs
- ResourceDescriptionAttribute.cs
- XmlSchemaCollection.cs
- XPathAncestorIterator.cs
- BinaryObjectReader.cs
- Ports.cs
- NativeMethodsCLR.cs
- PageRequestManager.cs
- elementinformation.cs
- WindowsSlider.cs
- DialogWindow.cs
- XmlDataDocument.cs
- RenderCapability.cs
- PrintEvent.cs
- MatrixAnimationBase.cs
- EventLogPermission.cs
- XmlLanguageConverter.cs
- IUnknownConstantAttribute.cs
- WorkflowService.cs
- ADConnectionHelper.cs
- FileSystemWatcher.cs
- XmlNamespaceMappingCollection.cs
- RectConverter.cs
- Utils.cs
- SingleSelectRootGridEntry.cs
- Interlocked.cs
- WebHttpBindingCollectionElement.cs
- XmlCharType.cs
- ExecutionContext.cs
- StringCollection.cs
- QueryProcessor.cs
- List.cs
- LinqDataSourceHelper.cs
- Brush.cs
- RegexGroup.cs
- CommandDevice.cs
- SystemParameters.cs
- SqlNotificationRequest.cs
- WindowsAuthenticationModule.cs
- StylusCollection.cs
- DeviceContext2.cs
- LookupNode.cs
- AsyncCompletedEventArgs.cs
- PageContent.cs
- x509store.cs
- DbParameterHelper.cs
- ExpressionBuilder.cs
- AmbiguousMatchException.cs
- RunWorkerCompletedEventArgs.cs
- HtmlElementErrorEventArgs.cs
- RegexRunner.cs
- sapiproxy.cs
- SqlBinder.cs
- XmlDataSourceNodeDescriptor.cs
- SmiSettersStream.cs
- PeerNameRecord.cs
- BaseValidator.cs
- ReadOnlyHierarchicalDataSource.cs
- GridViewCommandEventArgs.cs
- PngBitmapEncoder.cs
- HttpCacheParams.cs
- LinqToSqlWrapper.cs
- CustomLineCap.cs
- ObjectMemberMapping.cs
- BitmapCodecInfo.cs
- DataStreamFromComStream.cs
- BinaryFormatter.cs
- CorrelationKeyCalculator.cs
- QilName.cs
- UIntPtr.cs