Пример #1
0
 internal virtual bool TryGetEnumMember(EnumType type, String memberName, bool ignoreCase, out EnumMember outMember)
 {
     DebugCheck.NotNull(type);
     Check.NotEmpty(memberName, "memberName");
     outMember = null;
     return type.Members.TryGetValue(memberName, ignoreCase, out outMember);
 }
 internal MetadataEnumMember(string name, TypeUsage enumType, EnumMember enumMember)
     : base(MetadataMemberClass.EnumMember, name)
 {
     Debug.Assert(enumType != null, "enumType must not be null");
     Debug.Assert(enumMember != null, "enumMember must not be null");
     EnumType = enumType;
     EnumMember = enumMember;
 }
 internal MetadataEnumMember(string name, TypeUsage enumType, EnumMember enumMember)
     : base(MetadataMemberClass.EnumMember, name)
 {
     DebugCheck.NotNull(enumType);
     DebugCheck.NotNull(enumMember);
     EnumType = enumType;
     EnumMember = enumMember;
 }
Пример #4
0
        // <summary>
        // Adds the specified member to the member collection
        // </summary>
        // <param name="enumMember"> Enumeration member to add to the member collection. </param>
        internal void AddMember(EnumMember enumMember)
        {
            DebugCheck.NotNull(enumMember);
            Debug.Assert(
                Helper.IsEnumMemberValueInRange(
                    UnderlyingType.PrimitiveTypeKind, Convert.ToInt64(enumMember.Value, CultureInfo.InvariantCulture)));
            Debug.Assert(enumMember.Value.GetType() == UnderlyingType.ClrEquivalentType);

            Members.Source.Add(enumMember);
        }
 protected virtual void Visit(EnumMember enumMember)
 {
 }
Пример #6
0
 protected override void VisitEdmEnumTypeMember(EnumMember item)
 {
     _schemaWriter.WriteEnumTypeMemberElementHeader(item);
     base.VisitEdmEnumTypeMember(item);
     _schemaWriter.WriteEndElement();
 }
Пример #7
0
        /// <summary>
        /// Converts SchemaEnumType instance to Metadata EnumType.
        /// </summary>
        /// <param name="somEnumType">SchemaEnumType to be covnerted.</param>
        /// <param name="newGlobalItems">Global item objects where newly created Metadata EnumType will be added.</param>
        /// <returns></returns>
        private static EnumType ConvertToEnumType(Som.SchemaEnumType somEnumType, Dictionary<Som.SchemaElement, GlobalItem> newGlobalItems)
        {
            Debug.Assert(somEnumType != null, "somEnumType != null");
            Debug.Assert(newGlobalItems != null, "newGlobalItems != null");
            Debug.Assert(
                somEnumType.UnderlyingType is Som.ScalarType,
                "At this point the underlying type should have already been validated and should be ScalarType");

            var enumUnderlyingType = (Som.ScalarType)somEnumType.UnderlyingType;

            // note that enums don't live in SSpace so there is no need to GetDataSpace() for it.
            var enumType = new EnumType(
                somEnumType.Name,
                somEnumType.Namespace,
                enumUnderlyingType.Type,
                somEnumType.IsFlags,
                DataSpace.CSpace);

            var clrEnumUnderlyingType = enumUnderlyingType.Type.ClrEquivalentType;

            foreach (var somEnumMember in somEnumType.EnumMembers)
            {
                Debug.Assert(somEnumMember.Value != null, "value must not be null at this point");
                var enumMember = new EnumMember(
                    somEnumMember.Name, Convert.ChangeType(somEnumMember.Value, clrEnumUnderlyingType, CultureInfo.InvariantCulture));

                if (somEnumMember.Documentation != null)
                {
                    enumMember.Documentation = ConvertToDocumentation(somEnumMember.Documentation);
                }

                AddOtherContent(somEnumMember, enumMember);
                enumType.AddMember(enumMember);
            }

            if (somEnumType.Documentation != null)
            {
                enumType.Documentation = ConvertToDocumentation(somEnumType.Documentation);
            }
            AddOtherContent(somEnumType, enumType);

            newGlobalItems.Add(somEnumType, enumType);
            return enumType;
        }
Пример #8
0
 protected override void VisitEdmEnumTypeMember(EnumMember item)
 {
     this._schemaWriter.WriteEnumTypeMemberElementHeader(item);
     base.VisitEdmEnumTypeMember(item);
     this._schemaWriter.WriteEndElement();
 }
 internal void WriteEnumTypeMemberElementHeader(EnumMember enumTypeMember)
 {
     this._xmlWriter.WriteStartElement("Member");
     this._xmlWriter.WriteAttributeString("Name", enumTypeMember.Name);
     this._xmlWriter.WriteAttributeString("Value", enumTypeMember.Value.ToString());
 }
        internal void WriteEnumTypeMemberElementHeader(EnumMember enumTypeMember)
        {
            DebugCheck.NotNull(enumTypeMember);

            _xmlWriter.WriteStartElement(XmlConstants.Member);
            _xmlWriter.WriteAttributeString(XmlConstants.Name, enumTypeMember.Name);
            _xmlWriter.WriteAttributeString(XmlConstants.Value, enumTypeMember.Value.ToString());
        }
Пример #11
0
 internal virtual bool TryGetEnumMember(EnumType type, String memberName, bool ignoreCase, out EnumMember outMember)
 {
     DebugCheck.NotNull(type);
     Check.NotEmpty(memberName, "memberName");
     outMember = null;
     return(type.Members.TryGetValue(memberName, ignoreCase, out outMember));
 }
        protected override void Visit(EnumMember enumMember)
        {
            int index;
            if (!AddObjectToSeenListAndHashBuilder(enumMember, out index))
            {
                return;
            }

            AddObjectStartDumpToHashBuilder(enumMember, index);

            AddObjectContentToHashBuilder(enumMember.Name);
            AddObjectContentToHashBuilder(enumMember.Value);

            base.Visit(enumMember);

            AddObjectEndDumpToHashBuilder();
        }
 internal void AddMember(EnumMember enumMember)
 {
     this.Members.Source.Add(enumMember);
 }
Пример #14
0
        private static EnumMember CreateInternal(
            string name,
            object value,
            IEnumerable<MetadataProperty> metadataProperties)
        {
            var instance = new EnumMember(name, value);

            if (metadataProperties != null)
            {
                instance.AddMetadataProperties(metadataProperties.ToList());
            }

            instance.SetReadOnly();

            return instance;
        }