Author: msierad
Date: 2007-03-06 14:22:28 -0500 (Tue, 06 Mar 2007)
New Revision: 73834

Modified:
   trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
   
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionAndExpression.cs
   
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFactorExpresion.cs
   
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFunctionExpression.cs
   
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionNotExpression.cs
   
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionOrExpression.cs
   
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionRelationalExpression.cs
   
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs
Log:
2007-03-06  Marek Sieradzki  <[EMAIL PROTECTED]>

        * ExpressionCollection.cs (ConvertToArray): Simplify.



Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog    
    2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog    
    2007-03-06 19:22:28 UTC (rev 73834)
@@ -1,3 +1,7 @@
+2007-03-06  Marek Sieradzki  <[EMAIL PROTECTED]>
+
+       * ExpressionCollection.cs (ConvertToArray): Simplify.
+
 2007-03-05  Marek Sieradzki  <[EMAIL PROTECTED]>
 
        * TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and

Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionAndExpression.cs
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionAndExpression.cs
        2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionAndExpression.cs
        2007-03-06 19:22:28 UTC (rev 73834)
@@ -31,7 +31,7 @@
 using System.Xml;
 
 namespace Microsoft.Build.BuildEngine {
-       internal class ConditionAndExpression : ConditionExpression {
+       internal sealed class ConditionAndExpression : ConditionExpression {
        
                readonly ConditionExpression left;
                readonly ConditionExpression right;

Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFactorExpresion.cs
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFactorExpresion.cs
      2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFactorExpresion.cs
      2007-03-06 19:22:28 UTC (rev 73834)
@@ -34,7 +34,7 @@
 using System.Xml;
 
 namespace Microsoft.Build.BuildEngine {
-       internal class ConditionFactorExpression : ConditionExpression {
+       internal sealed class ConditionFactorExpression : ConditionExpression {
        
                readonly Token token;
                

Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFunctionExpression.cs
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFunctionExpression.cs
   2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionFunctionExpression.cs
   2007-03-06 19:22:28 UTC (rev 73834)
@@ -34,7 +34,7 @@
 using System.Xml;
 
 namespace Microsoft.Build.BuildEngine {
-       internal class ConditionFunctionExpression : ConditionExpression {
+       internal sealed class ConditionFunctionExpression : ConditionExpression 
{
        
                List <ConditionFactorExpression>        args;
                string                                  name;

Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionNotExpression.cs
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionNotExpression.cs
        2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionNotExpression.cs
        2007-03-06 19:22:28 UTC (rev 73834)
@@ -31,7 +31,7 @@
 using System.Xml;
 
 namespace Microsoft.Build.BuildEngine {
-       internal class ConditionNotExpression : ConditionExpression {
+       internal sealed class ConditionNotExpression : ConditionExpression {
        
                readonly ConditionExpression expression;
                

Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionOrExpression.cs
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionOrExpression.cs
 2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionOrExpression.cs
 2007-03-06 19:22:28 UTC (rev 73834)
@@ -31,7 +31,7 @@
 using System.Xml;
 
 namespace Microsoft.Build.BuildEngine {
-       internal class ConditionOrExpression : ConditionExpression {
+       internal sealed class ConditionOrExpression : ConditionExpression {
        
                readonly ConditionExpression left;
                readonly ConditionExpression right;

Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionRelationalExpression.cs
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionRelationalExpression.cs
 2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConditionRelationalExpression.cs
 2007-03-06 19:22:28 UTC (rev 73834)
@@ -32,7 +32,7 @@
 using System.Xml;
 
 namespace Microsoft.Build.BuildEngine {
-       internal class ConditionRelationalExpression : ConditionExpression {
+       internal sealed class ConditionRelationalExpression : 
ConditionExpression {
        
                readonly ConditionExpression left;
                readonly ConditionExpression right;

Modified: 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs
===================================================================
--- 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs
  2007-03-06 18:16:18 UTC (rev 73833)
+++ 
trunk/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ExpressionCollection.cs
  2007-03-06 19:22:28 UTC (rev 73834)
@@ -93,53 +93,28 @@
 
                object ConvertToArray (Project project, Type type)
                {
-                       string[] rawTable = ConvertToString (project).Split 
(';');
-                       int i = 0;
-                       
-                       if (type == typeof (bool[])) {
-                               bool[] array = new bool [rawTable.Length];
-                               foreach (string raw in rawTable)
-                                       array [i++] = (bool) ConvertToObject 
(raw, type.GetElementType ());
-                               return array;
-                       } else if (type == typeof (string[])) {
-                               string[] array = new string [rawTable.Length];
-                               foreach (string raw in rawTable)
-                                       array [i++] = (string) ConvertToObject 
(raw, type.GetElementType ());
-                               return array;
-                       } else if (type == typeof (int[])) {
-                               int[] array = new int [rawTable.Length];
-                               foreach (string raw in rawTable)
-                                       array [i++] = (int) ConvertToObject 
(raw, type.GetElementType ());
-                               return array;
-                       } else if (type == typeof (uint[])) {
-                               uint[] array = new uint [rawTable.Length];
-                               foreach (string raw in rawTable)
-                                       array [i++] = (uint) ConvertToObject 
(raw, type.GetElementType ());
-                               return array;
-                       } else if (type == typeof (DateTime[])) {
-                               DateTime[] array = new DateTime 
[rawTable.Length];
-                               foreach (string raw in rawTable)
-                                       array [i++] = (DateTime) 
ConvertToObject (raw, type.GetElementType ());
-                               return array;
-                       } else
-                               throw new Exception ("Invalid type");
+                       string [] rawTable = ConvertToString (project).Split 
(';');
+
+                       Array arr = Array.CreateInstance (type.GetElementType 
(), rawTable.Length);
+                       for (int i = 0; i < arr.Length; i++)
+                               arr.SetValue (ConvertToObject (rawTable [i], 
type.GetElementType ()), i);
+                       return arr;
                }
                
                object ConvertToObject (string raw, Type type)
                {
-                       if (type == typeof (bool)) {
+                       if (type == typeof (bool))
                                return Boolean.Parse (raw);
-                       } else if (type == typeof (string)) {
+                       else if (type == typeof (string))
                                return raw;
-                       } else if (type == typeof (int)) {
+                       else if (type == typeof (int))
                                return Int32.Parse (raw);
-                       } else if (type == typeof (uint)) {
+                       else if (type == typeof (uint))
                                return UInt32.Parse (raw);
-                       } else if (type == typeof (DateTime)) {
+                       else if (type == typeof (DateTime))
                                return DateTime.Parse (raw);
-                       } else {
+                       else
                                throw new Exception (String.Format ("Unknown 
type: {0}", type.ToString ()));
-                       }
                }
                string ConvertToString (Project project)
                {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to