Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / Facet.cs / 2 / Facet.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Common; using System.Text; using System.Diagnostics; namespace System.Data.Metadata.Edm { ////// Class for representing a Facet object /// This object is Immutable (not just set to readonly) and /// some parts of the system are depending on that behavior /// [DebuggerDisplay("{Name,nq}={Value}")] public sealed class Facet : MetadataItem { #region Constructors ////// The constructor for constructing a Facet object with the facet description and a value /// /// The object describing this facet /// The value of the facet ///Thrown if facetDescription argument is null private Facet(FacetDescription facetDescription, object value) :base(MetadataFlags.Readonly) { EntityUtil.GenericCheckArgumentNull(facetDescription, "facetDescription"); _facetDescription = facetDescription; _value = value; } ////// Creates a Facet instance with the specified value for the given /// facet description. /// /// The object describing this facet /// The value of the facet ///Thrown if facetDescription argument is null internal static Facet Create(FacetDescription facetDescription, object value) { return Create(facetDescription, value, false); } ////// Creates a Facet instance with the specified value for the given /// facet description. /// /// The object describing this facet /// The value of the facet /// true to bypass caching and known values; false otherwise. ///Thrown if facetDescription argument is null internal static Facet Create(FacetDescription facetDescription, object value, bool bypassKnownValues) { EntityUtil.CheckArgumentNull(facetDescription, "facetDescription"); if (!bypassKnownValues) { // Reuse facets with a null value. if (object.ReferenceEquals(value, null)) { return facetDescription.NullValueFacet; } // Reuse facets with a default value. if (object.Equals(facetDescription.DefaultValue, value)) { return facetDescription.DefaultValueFacet; } // Special case boolean facets. if (facetDescription.FacetType.Identity == "Edm.Boolean") { bool boolValue = (bool)value; return facetDescription.GetBooleanFacet(boolValue); } } Facet result = new Facet(facetDescription, value); // Check the type of the value only if we know what the correct CLR type is if (value != null && !Helper.IsUnboundedFacetValue(result) && result.FacetType.ClrType != null) { Type valueType = value.GetType(); if (valueType != result.FacetType.ClrType && !result.FacetType.ClrType.IsAssignableFrom(valueType)) { throw EntityUtil.FacetValueHasIncorrectType(result.Name, result.FacetType.ClrType, valueType, "value"); } } return result; } #endregion #region Fields ///The object describing this facet. private readonly FacetDescription _facetDescription; ///The value assigned to this facet. private readonly object _value; #endregion #region Properties ////// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.Facet; } } ////// Gets the description object for describing the facet /// public FacetDescription Description { get { return _facetDescription; } } ////// Gets/Sets the name of the facet /// [MetadataProperty(PrimitiveTypeKind.String, false)] public String Name { get { return _facetDescription.FacetName; } } ////// Gets/Sets the type of the facet /// [MetadataProperty(BuiltInTypeKind.EdmType, false)] public EdmType FacetType { get { return _facetDescription.FacetType; } } ////// Gets/Sets the value of the facet /// ///Thrown if the Facet instance is in ReadOnly state [MetadataProperty(typeof(Object), false)] public Object Value { get { return _value; } } ////// Gets the identity for this item as a string /// internal override string Identity { get { return _facetDescription.FacetName; } } ////// Indicates whether the value of the facet is unbounded /// public bool IsUnbounded { get { return object.ReferenceEquals(Value, EdmConstants.UnboundedValue); } } #endregion #region Methods ////// Overriding System.Object.ToString to provide better String representation /// for this type. /// public override string ToString() { return this.Name; } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Common; using System.Text; using System.Diagnostics; namespace System.Data.Metadata.Edm { ////// Class for representing a Facet object /// This object is Immutable (not just set to readonly) and /// some parts of the system are depending on that behavior /// [DebuggerDisplay("{Name,nq}={Value}")] public sealed class Facet : MetadataItem { #region Constructors ////// The constructor for constructing a Facet object with the facet description and a value /// /// The object describing this facet /// The value of the facet ///Thrown if facetDescription argument is null private Facet(FacetDescription facetDescription, object value) :base(MetadataFlags.Readonly) { EntityUtil.GenericCheckArgumentNull(facetDescription, "facetDescription"); _facetDescription = facetDescription; _value = value; } ////// Creates a Facet instance with the specified value for the given /// facet description. /// /// The object describing this facet /// The value of the facet ///Thrown if facetDescription argument is null internal static Facet Create(FacetDescription facetDescription, object value) { return Create(facetDescription, value, false); } ////// Creates a Facet instance with the specified value for the given /// facet description. /// /// The object describing this facet /// The value of the facet /// true to bypass caching and known values; false otherwise. ///Thrown if facetDescription argument is null internal static Facet Create(FacetDescription facetDescription, object value, bool bypassKnownValues) { EntityUtil.CheckArgumentNull(facetDescription, "facetDescription"); if (!bypassKnownValues) { // Reuse facets with a null value. if (object.ReferenceEquals(value, null)) { return facetDescription.NullValueFacet; } // Reuse facets with a default value. if (object.Equals(facetDescription.DefaultValue, value)) { return facetDescription.DefaultValueFacet; } // Special case boolean facets. if (facetDescription.FacetType.Identity == "Edm.Boolean") { bool boolValue = (bool)value; return facetDescription.GetBooleanFacet(boolValue); } } Facet result = new Facet(facetDescription, value); // Check the type of the value only if we know what the correct CLR type is if (value != null && !Helper.IsUnboundedFacetValue(result) && result.FacetType.ClrType != null) { Type valueType = value.GetType(); if (valueType != result.FacetType.ClrType && !result.FacetType.ClrType.IsAssignableFrom(valueType)) { throw EntityUtil.FacetValueHasIncorrectType(result.Name, result.FacetType.ClrType, valueType, "value"); } } return result; } #endregion #region Fields ///The object describing this facet. private readonly FacetDescription _facetDescription; ///The value assigned to this facet. private readonly object _value; #endregion #region Properties ////// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.Facet; } } ////// Gets the description object for describing the facet /// public FacetDescription Description { get { return _facetDescription; } } ////// Gets/Sets the name of the facet /// [MetadataProperty(PrimitiveTypeKind.String, false)] public String Name { get { return _facetDescription.FacetName; } } ////// Gets/Sets the type of the facet /// [MetadataProperty(BuiltInTypeKind.EdmType, false)] public EdmType FacetType { get { return _facetDescription.FacetType; } } ////// Gets/Sets the value of the facet /// ///Thrown if the Facet instance is in ReadOnly state [MetadataProperty(typeof(Object), false)] public Object Value { get { return _value; } } ////// Gets the identity for this item as a string /// internal override string Identity { get { return _facetDescription.FacetName; } } ////// Indicates whether the value of the facet is unbounded /// public bool IsUnbounded { get { return object.ReferenceEquals(Value, EdmConstants.UnboundedValue); } } #endregion #region Methods ////// Overriding System.Object.ToString to provide better String representation /// for this type. /// public override string ToString() { return this.Name; } #endregion } } // 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
- SmtpLoginAuthenticationModule.cs
- ManagementObjectCollection.cs
- ListItemParagraph.cs
- HttpCachePolicy.cs
- PathFigure.cs
- QuarticEase.cs
- TextServicesContext.cs
- SurrogateSelector.cs
- EllipticalNodeOperations.cs
- WFItemsToSpacerVisibility.cs
- Mappings.cs
- MarkupCompilePass2.cs
- CodeLinePragma.cs
- SolidColorBrush.cs
- NumberFunctions.cs
- JsonFormatReaderGenerator.cs
- DataGridViewHeaderCell.cs
- ConfigurationSectionCollection.cs
- SerializationAttributes.cs
- EdgeProfileValidation.cs
- NavigationHelper.cs
- BigIntegerStorage.cs
- VisualBrush.cs
- ImageMap.cs
- TextTreeDeleteContentUndoUnit.cs
- DataGridViewRowsAddedEventArgs.cs
- SimplePropertyEntry.cs
- XmlStringTable.cs
- TrackingCondition.cs
- TdsRecordBufferSetter.cs
- FileInfo.cs
- DrawingVisualDrawingContext.cs
- SiteMapDataSource.cs
- Int16Animation.cs
- PropertyDescriptorGridEntry.cs
- HierarchicalDataTemplate.cs
- RoutedEventValueSerializer.cs
- DropShadowEffect.cs
- AsyncDataRequest.cs
- SamlSerializer.cs
- StandardOleMarshalObject.cs
- MemoryMappedViewStream.cs
- MasterPageBuildProvider.cs
- util.cs
- UnsafeNativeMethods.cs
- XmlDocumentFragment.cs
- ResponseStream.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- CopyEncoder.cs
- GroupStyle.cs
- Vector3D.cs
- DataGridViewCellValueEventArgs.cs
- LogicalTreeHelper.cs
- StreamInfo.cs
- HttpValueCollection.cs
- SecurityContextSecurityTokenParameters.cs
- StringDictionary.cs
- PropertyChangedEventManager.cs
- TraversalRequest.cs
- ParameterCollectionEditorForm.cs
- GridViewColumnHeader.cs
- ImageAttributes.cs
- ResXBuildProvider.cs
- ExpandoObject.cs
- XmlSchemaAll.cs
- EventLogPermissionEntryCollection.cs
- EventManager.cs
- ProgressBarRenderer.cs
- SqlReorderer.cs
- DrawToolTipEventArgs.cs
- ArrayWithOffset.cs
- BrowserDefinition.cs
- InstanceHandle.cs
- DependencyPropertyChangedEventArgs.cs
- _NtlmClient.cs
- TraceLevelHelper.cs
- XmlComment.cs
- DbConnectionStringCommon.cs
- EntityProxyFactory.cs
- EncryptedData.cs
- OleDbReferenceCollection.cs
- SmiMetaDataProperty.cs
- AttachInfo.cs
- DataGridCommandEventArgs.cs
- QilList.cs
- TypeSystem.cs
- Command.cs
- GroupBox.cs
- WebServiceTypeData.cs
- DbConnectionOptions.cs
- ControlDesignerState.cs
- DatatypeImplementation.cs
- NativeMethods.cs
- ToolStripTextBox.cs
- QilUnary.cs
- GridViewCancelEditEventArgs.cs
- PropertyStore.cs
- TreeNodeCollection.cs
- ServiceDescriptionImporter.cs
- ApplicationSettingsBase.cs