diff options
author | Lluis Sanchez <lluis@novell.com> | 2007-05-07 22:10:37 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2007-05-07 22:10:37 +0400 |
commit | cf68f82560fd34a0399b91b42f8450b1e3385858 (patch) | |
tree | 38f173ab414c746a6fbf37e050dd2f2e4e68eaa3 /Mono.Addins/Mono.Addins.Description/AddinDescription.cs | |
parent | 7a6a508abf9b992c5badbbe24cb7b00cb5623d19 (diff) |
* Mono.Addins.Serialization/BinaryXmlReader.cs,
Mono.Addins.Description/NodeTypeAttribute.cs,
Mono.Addins.Description/AddinDescription.cs,
Mono.Addins.Description/ExtensionNodeType.cs,
Mono.Addins.Description/ExtensionPoint.cs,
Mono.Addins.Description/ConditionTypeDescription.cs,
Mono.Addins.Database/FileDatabase.cs: Added boolean property to be
set to avoid loading documentation information from add-in
descriptions (not needed at run-time).
* Mono.Addins.mdp, Mono.Addins/TypeExtensionNode.cs,
Mono.Addins/InstanceExtensionNode.cs,
Mono.Addins/ExtensionContext.cs, Mono.Addins/ExtensionNode.cs,
Makefile.am: Implemented new InstanceExtensionNode class. It is
almost like TypeExtensionNode, but it does not implement the actual
object creation, since CreateInstance is abstract.
TypeExtensionNode is now a subclass of InstanceExtensionNode which
creates an instance of the class specified in the 'class'
attribute.
* Mono.Addins/NodeAttributeAttribute.cs: Allow specifying the
description in the constructor.
* Mono.Addins.Description/ObjectDescriptionCollection.cs: New AddRange
method.
* Mono.Addins.Description/ExtensionNodeDescription.cs: Added method for
getting the path to a node. Added some helper properties.
* Mono.Addins.Database/AddinScanner.cs: Properly scan node types
declared in node sets or declared as children of other nodes.
svn path=/trunk/mono-addins/; revision=76856
Diffstat (limited to 'Mono.Addins/Mono.Addins.Description/AddinDescription.cs')
-rw-r--r-- | Mono.Addins/Mono.Addins.Description/AddinDescription.cs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs index 68ded31..6059f7f 100644 --- a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs +++ b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs @@ -60,6 +60,7 @@ namespace Mono.Addins.Description string sourceAddinFile; bool isroot; bool hasUserId; + bool canWrite = true; ModuleDescription mainModule; ModuleCollection optionalModules; @@ -164,7 +165,7 @@ namespace Mono.Addins.Description set { basePath = value; } } - internal bool IsRoot { + public bool IsRoot { get { return isroot; } set { isroot = value; } } @@ -352,6 +353,9 @@ namespace Mono.Addins.Description void SaveXml () { + if (!canWrite) + throw new InvalidOperationException ("Can't write incomplete description."); + XmlElement elem; if (configDoc == null) { @@ -470,6 +474,7 @@ namespace Mono.Addins.Description if (description != null) { description.FileName = configFile; description.fromBinaryFile = true; + description.canWrite = !fdb.IgnoreDescriptionData; } return description; } @@ -481,6 +486,7 @@ namespace Mono.Addins.Description if (description != null) { description.FileName = fileName; description.fromBinaryFile = true; + description.canWrite = !fdb.IgnoreDescriptionData; } return description; } @@ -493,12 +499,16 @@ namespace Mono.Addins.Description internal void SaveBinary (FileDatabase fdb) { + if (!canWrite) + throw new InvalidOperationException ("Can't write incomplete description."); fdb.WriteSharedObject (AddinFile, FileName, typeMap, this); // BinaryXmlReader.DumpFile (configFile); } internal void SaveHostBinary (FileDatabase fdb, string basePath) { + if (!canWrite) + throw new InvalidOperationException ("Can't write incomplete description."); if (!fromBinaryFile) FileName = null; FileName = fdb.WriteSharedObject (basePath, AddinId, ".mroot", AddinFile, FileName, typeMap, this); |