Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono-addins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2007-05-07 22:10:37 +0400
committerLluis Sanchez <lluis@novell.com>2007-05-07 22:10:37 +0400
commitcf68f82560fd34a0399b91b42f8450b1e3385858 (patch)
tree38f173ab414c746a6fbf37e050dd2f2e4e68eaa3 /Mono.Addins/Mono.Addins.Description/AddinDescription.cs
parent7a6a508abf9b992c5badbbe24cb7b00cb5623d19 (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.cs12
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);