Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RectValueSerializer.cs
- TagNameToTypeMapper.cs
- SmtpDigestAuthenticationModule.cs
- SelectionRange.cs
- MappingModelBuildProvider.cs
- ResourceReader.cs
- StorageModelBuildProvider.cs
- FieldBuilder.cs
- RootDesignerSerializerAttribute.cs
- XPathParser.cs
- XmlDataSource.cs
- FontUnitConverter.cs
- TaskHelper.cs
- StaticContext.cs
- ADMembershipUser.cs
- IDReferencePropertyAttribute.cs
- MetadataWorkspace.cs
- FontUnit.cs
- Invariant.cs
- ConfigXmlElement.cs
- NetworkInterface.cs
- ObjectDataSourceView.cs
- ClusterSafeNativeMethods.cs
- SafeProcessHandle.cs
- DirectoryInfo.cs
- ISO2022Encoding.cs
- ExtenderControl.cs
- RIPEMD160.cs
- HttpHeaderCollection.cs
- CryptoApi.cs
- TextEditorParagraphs.cs
- NotificationContext.cs
- XPathNodeList.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- SocketAddress.cs
- LoginCancelEventArgs.cs
- Listen.cs
- CompositeActivityTypeDescriptor.cs
- XhtmlBasicValidationSummaryAdapter.cs
- CSharpCodeProvider.cs
- JapaneseCalendar.cs
- FileVersion.cs
- Debug.cs
- CodeMethodReturnStatement.cs
- StylusPointPropertyId.cs
- XmlUTF8TextWriter.cs
- WasEndpointConfigContainer.cs
- CompoundFileReference.cs
- SymbolPair.cs
- ResourceExpression.cs
- ListDictionaryInternal.cs
- SuppressIldasmAttribute.cs
- AttributeSetAction.cs
- TraceContextEventArgs.cs
- OpenFileDialog.cs
- QuotedStringFormatReader.cs
- SafeNativeMethods.cs
- TcpPortSharing.cs
- TextDecoration.cs
- CompModSwitches.cs
- UnsafeNativeMethods.cs
- StickyNote.cs
- RuntimeIdentifierPropertyAttribute.cs
- LogEntryHeaderv1Deserializer.cs
- MimeParameter.cs
- UIAgentRequest.cs
- TabletDevice.cs
- _DisconnectOverlappedAsyncResult.cs
- safePerfProviderHandle.cs
- BinaryUtilClasses.cs
- ComponentSerializationService.cs
- DataObjectMethodAttribute.cs
- IgnorePropertiesAttribute.cs
- FlowDocumentReaderAutomationPeer.cs
- XmlDataCollection.cs
- ETagAttribute.cs
- HttpModule.cs
- TypeConverterHelper.cs
- OverrideMode.cs
- SplayTreeNode.cs
- StylusPointProperty.cs
- DocumentGridContextMenu.cs
- PinnedBufferMemoryStream.cs
- XmlBaseWriter.cs
- DoubleAnimation.cs
- XmlAnyElementAttributes.cs
- sqlstateclientmanager.cs
- SessionStateSection.cs
- UserControl.cs
- XmlNode.cs
- WebServiceReceive.cs
- TcpConnectionPool.cs
- MailDefinition.cs
- SqlTriggerContext.cs
- DataAdapter.cs
- PolygonHotSpot.cs
- QueryContinueDragEventArgs.cs
- AttachmentCollection.cs
- OdbcCommandBuilder.cs
- GroupDescription.cs