2
// NodeTypeAttribute.cs
7
// Copyright (C) 2007 Novell, Inc (http://www.novell.com)
9
// Permission is hereby granted, free of charge, to any person obtaining
10
// a copy of this software and associated documentation files (the
11
// "Software"), to deal in the Software without restriction, including
12
// without limitation the rights to use, copy, modify, merge, publish,
13
// distribute, sublicense, and/or sell copies of the Software, and to
14
// permit persons to whom the Software is furnished to do so, subject to
15
// the following conditions:
17
// The above copyright notice and this permission notice shall be
18
// included in all copies or substantial portions of the Software.
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
using System.Collections.Specialized;
33
using Mono.Addins.Serialization;
35
namespace Mono.Addins.Description
37
public class NodeTypeAttribute: ObjectDescription
44
public NodeTypeAttribute()
49
get { return name != null ? name : string.Empty; }
53
public bool Required {
54
get { return required; }
55
set { required = value; }
59
get { return type != null ? type : string.Empty; }
63
public string Description {
64
get { return description != null ? description : string.Empty; }
65
set { description = value; }
68
internal override void Verify (string location, StringCollection errors)
70
VerifyNotEmpty (location + "Attribute", errors, Name, "name");
73
internal NodeTypeAttribute (XmlElement elem): base (elem)
75
name = elem.GetAttribute ("name");
76
type = elem.GetAttribute ("type");
77
required = elem.GetAttribute ("required").ToLower () == "true";
78
description = ReadXmlDescription ();
81
internal override void SaveXml (XmlElement parent)
83
CreateElement (parent, "Attribute");
84
Element.SetAttribute ("name", name);
87
Element.SetAttribute ("type", Type);
89
Element.RemoveAttribute ("type");
92
Element.SetAttribute ("required", "True");
94
Element.RemoveAttribute ("required");
96
SaveXmlDescription (description);
99
internal override void Write (BinaryXmlWriter writer)
101
writer.WriteValue ("name", name);
102
writer.WriteValue ("type", type);
103
writer.WriteValue ("required", required);
104
writer.WriteValue ("description", description);
107
internal override void Read (BinaryXmlReader reader)
109
name = reader.ReadStringValue ("name");
110
type = reader.ReadStringValue ("type");
111
required = reader.ReadBooleanValue ("required");
112
if (!reader.IgnoreDescriptionData)
113
description = reader.ReadStringValue ("description");