Add missing ITaskFactory/2 and co. Add BuildEventArgs.set_Context().
authorAtsushi Eno <atsushieno@veritas-vos-liberabit.com>
Tue, 19 Nov 2013 08:44:37 +0000 (17:44 +0900)
committerAtsushi Eno <atsushieno@veritas-vos-liberabit.com>
Fri, 29 Nov 2013 09:22:09 +0000 (18:22 +0900)
mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework.dll.sources
mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/BuildEventArgs.cs
mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/ITaskFactory.cs [new file with mode: 0644]
mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/ITaskFactory2.cs [new file with mode: 0644]
mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/TaskPropertyInfo.cs [new file with mode: 0644]

index d8be848568eb67dc709e1776b11c3723cf909c02..d24bf602ad312d6d77f7dc9feef2a67b290f7c2e 100644 (file)
@@ -32,6 +32,8 @@ Microsoft.Build.Framework/IForwardingLogger.cs
 Microsoft.Build.Framework/ILogger.cs
 Microsoft.Build.Framework/INodeLogger.cs
 Microsoft.Build.Framework/ITask.cs
+Microsoft.Build.Framework/ITaskFactory.cs
+Microsoft.Build.Framework/ITaskFactory2.cs
 Microsoft.Build.Framework/ITaskHost.cs
 Microsoft.Build.Framework/ITaskItem.cs
 Microsoft.Build.Framework/ITaskItem2.cs
@@ -54,6 +56,7 @@ Microsoft.Build.Framework/TargetStartedEventHandler.cs
 Microsoft.Build.Framework/TaskCommandLineEventArgs.cs
 Microsoft.Build.Framework/TaskFinishedEventArgs.cs
 Microsoft.Build.Framework/TaskFinishedEventHandler.cs
+Microsoft.Build.Framework/TaskPropertyInfo.cs
 Microsoft.Build.Framework/TaskStartedEventArgs.cs
 Microsoft.Build.Framework/TaskStartedEventHandler.cs
 
index c92eaba1c65906a6f1c4083b5607c954cfa28afb..fd2c709dd04411aed849f3a2aaf7a238707572f6 100644 (file)
@@ -97,8 +97,11 @@ namespace Microsoft.Build.Framework
                }
 
                public BuildEventContext BuildEventContext {
-                       get {
-                               return context;
+                       get { return context; }
+                       set {
+                               if (value == null)
+                                       throw new ArgumentNullException ("value");
+                               context = value;
                        }
                }
        }
diff --git a/mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/ITaskFactory.cs b/mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/ITaskFactory.cs
new file mode 100644 (file)
index 0000000..0d6820b
--- /dev/null
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+
+namespace Microsoft.Build.Framework
+{
+       public interface ITaskFactory
+       {
+               string FactoryName { get; }
+               Type TaskType { get; }
+               void CleanupTask (ITask task);
+               ITask CreateTask (IBuildEngine taskFactoryLoggingHost);
+               TaskPropertyInfo [] GetTaskParameters ();
+               bool Initialize (string taskName, IDictionary<string, TaskPropertyInfo> parameterGroup, string taskBody, IBuildEngine taskFactoryLoggingHost);
+       }
+}
+
diff --git a/mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/ITaskFactory2.cs b/mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/ITaskFactory2.cs
new file mode 100644 (file)
index 0000000..4659870
--- /dev/null
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace Microsoft.Build.Framework
+{
+       interface ITaskFactory2 : ITaskFactory
+       {
+               ITask CreateTask (IBuildEngine taskFactoryLoggingHost, IDictionary<string, string> taskIdentityParameters);
+               bool Initialize (string taskName, IDictionary<string, string> factoryIdentityParameters, IDictionary<string, TaskPropertyInfo> parameterGroup, string taskBody, IBuildEngine taskFactoryLoggingHost);
+       }
+}
+
diff --git a/mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/TaskPropertyInfo.cs b/mcs/class/Microsoft.Build.Framework/Microsoft.Build.Framework/TaskPropertyInfo.cs
new file mode 100644 (file)
index 0000000..a6fbfaa
--- /dev/null
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace Microsoft.Build.Framework
+{
+       [Serializable]
+       public class TaskPropertyInfo
+       {
+               public TaskPropertyInfo (string name, Type typeOfParameter, bool output, bool required)
+               {
+                       Name = name;
+                       PropertyType = typeOfParameter;
+                       Output = output;
+                       Required = required;
+               }
+               
+               public string Name { get; private set; }
+               public bool Output { get; private set; }
+               public Type PropertyType { get; private set; }
+               public bool Required { get; private set; }
+       }
+}
+