Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / System.Data.Entity / System / Data / Metadata / Edm / EnumMember.cs
blobef089ea63df91c2809497cf5d15ce4bde5f88de7
1 //---------------------------------------------------------------------
2 // <copyright file="EnumMember.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 // </copyright>
5 //
6 // @owner Microsoft
7 // @backupOwner Microsoft
8 //---------------------------------------------------------------------
10 using System;
11 using System.Collections.Generic;
12 using System.Data.Common;
13 using System.Text;
14 using System.Diagnostics;
16 namespace System.Data.Metadata.Edm
18 /// <summary>
19 /// Represents an enumeration member.
20 /// </summary>
21 public sealed class EnumMember : MetadataItem
23 #region Fields
25 /// <summary>
26 /// The name of this enumeration member.
27 /// </summary>
28 private readonly string _name;
30 /// <summary>
31 /// The value of this enumeration member.
32 /// </summary>
33 private readonly object _value;
35 #endregion
37 #region Constructors
39 /// <summary>
40 /// Initializes a new instance of the <see cref="EnumMember"/> type by using the specified name and value.
41 /// </summary>
42 /// <param name="name">The name of this enumeration member. Must not be null or the empty string.</param>
43 /// <param name="value">The value of this enumeration member. </param>
44 /// <exception cref="System.ArgumentNullException">Thrown if name argument is null</exception>
45 /// <exception cref="System.ArgumentException">Thrown if name argument is empty string</exception>
46 internal EnumMember(string name, object value)
47 : base(MetadataFlags.Readonly)
49 EntityUtil.CheckStringArgument(name, "name");
50 Debug.Assert(value != null, "value != null");
51 Debug.Assert(value is SByte || value is Byte || value is Int16 || value is Int32 || value is Int64, "Unsupported type of enum member value.");
53 _name = name;
54 _value = value;
57 #endregion
59 #region Properties
61 /// <summary>
62 /// Gets the kind of this type.
63 /// </summary>
64 public override BuiltInTypeKind BuiltInTypeKind
66 get { return BuiltInTypeKind.EnumMember; }
69 /// <summary>
70 /// Gets the name of this enumeration member.
71 /// </summary>
72 [MetadataProperty(PrimitiveTypeKind.String, false)]
73 public string Name
75 get
77 return _name;
81 /// <summary>
82 /// Gets the value of this enumeration member.
83 /// </summary>
84 [MetadataProperty(BuiltInTypeKind.PrimitiveType, false)]
85 public object Value
87 get
89 return _value;
93 /// <summary>
94 /// Gets the identity for this item as a string
95 /// </summary>
96 internal override string Identity
98 get
100 return Name;
104 #endregion
106 #region Methods
108 /// <summary>
109 /// Overriding System.Object.ToString to provide better String representation for this type.
110 /// </summary>
111 public override string ToString()
113 return Name;
116 #endregion