[mapguide-commits] r8467 - in trunk/Tools/Maestro: Generated Maestro.Editors/Common OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI/ObjectModels OSGeo.MapGuide.MaestroAPI/Resource/Validation OSGeo.MapGuide.MaestroAPI.Http OSGeo.MapGuide.MaestroAPI.Local OSGeo.MapGuide.MaestroAPI.Native OSGeo.MapGuide.ObjectModels OSGeo.MapGuide.ObjectModels/Capabilities OSGeo.MapGuide.ObjectModels/Capabilities/v1_0_0 OSGeo.MapGuide.ObjectModels/Capabilities/v1_1_0 OSGeo.MapGuide.ObjectModels/Common OSGeo.MapGuide.ObjectModels/FeatureSource/v1_0_0 OSGeo.MapGuide.ObjectModels/LayerDefinition OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_0_0 OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_1_0 OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_2_0 OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_3_0 OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_3_0 OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_4_0 OSGeo.MapGuide.ObjectModels/LoadProcedure OSGeo.MapGuide.ObjectModels/RuntimeMap OSGeo.MapGuide.ObjectModels/R untimeMap/v2_6_0

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sat Dec 27 01:57:30 PST 2014


Author: jng
Date: 2014-12-27 01:57:30 -0800 (Sat, 27 Dec 2014)
New Revision: 8467

Added:
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/FdoCapabilities.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_0_0/
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_0_0/FdoCapabilitiesImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_1_0/
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_1_0/FdoCapabilitiesImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/ResourcePackageManifest.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/UnmanagedDataList.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/RuntimeMapInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/v2_6_0/
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/v2_6_0/RuntimeMapImpl.cs
Modified:
   trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.0.0.designer.cs
   trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.1.0.designer.cs
   trunk/Tools/Maestro/Generated/RuntimeMap-2.6.0.designer.cs
   trunk/Tools/Maestro/Maestro.Editors/Common/MonoCompatibleExpressionEditor.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Local/LocalConnection.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FdoCapabilities.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/RuntimeMapImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/BaseSerializable.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/IFdoSpatialContext.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/FeatureSource/v1_0_0/FeatureSourceImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/LayerDefinitionInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_0_0/LayerElementFactoryImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_1_0/LayerElementFactoryImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_2_0/LayerElementFactoryImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_3_0/LayerElementFactoryImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_3_0/LayerElementFactoryImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_4_0/LayerElementFactoryImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LoadProcedure/LoadProcedureInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceContentVersionChecker.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Utility.cs
Log:
#2513: Move additional extension methods to ObjectModels library. Also do additional namespace renaming in preparation for the eventual library split. Also rename Utility to Utils in the ObjectModels library to avoid future naming collision when the MaestroAPI will reference the ObjectModels library.

Modified: trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.0.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.0.0.designer.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.0.0.designer.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -5,7 +5,7 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.Capabilities</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitial
 izeFields>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.Capabilities {
+namespace OSGeo.MapGuide.ObjectModels.Capabilities.v1_0_0 {
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;

Modified: trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.1.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.1.0.designer.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/Generated/FdoProviderCapabilities-1.1.0.designer.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -4,7 +4,7 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.Capabilities</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitial
 izeFields>True</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.Capabilities_1_1_0 {
+namespace OSGeo.MapGuide.ObjectModels.Capabilities.v1_1_0 {
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;

Modified: trunk/Tools/Maestro/Generated/RuntimeMap-2.6.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/RuntimeMap-2.6.0.designer.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/Generated/RuntimeMap-2.6.0.designer.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -5,7 +5,7 @@
 //    <NameSpace>OSGeo.MapGuide.ObjectModels.RuntimeMap</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitializ
 eFields>False</EnableInitializeFields>
 //  </auto-generated>
 // ------------------------------------------------------------------------------
-namespace OSGeo.MapGuide.ObjectModels.RuntimeMap {
+namespace OSGeo.MapGuide.ObjectModels.RuntimeMap.v2_6_0 {
     using System;
     using System.Diagnostics;
     using System.Xml.Serialization;

Modified: trunk/Tools/Maestro/Maestro.Editors/Common/MonoCompatibleExpressionEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Common/MonoCompatibleExpressionEditor.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/Maestro.Editors/Common/MonoCompatibleExpressionEditor.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -23,9 +23,11 @@
 using Maestro.Editors.Common.Expression;
 using Maestro.Editors.LayerDefinition.Vector.Thematics;
 using Maestro.Shared.UI;
+using OSGeo.MapGuide.MaestroAPI;
 using OSGeo.MapGuide.MaestroAPI.Exceptions;
 using OSGeo.MapGuide.MaestroAPI.Schema;
 using OSGeo.MapGuide.ObjectModels.Capabilities;
+using OSGeo.MapGuide.ObjectModels.Capabilities.v1_0_0;
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
@@ -160,7 +162,7 @@
 
                 if (attachStylizationFunctions)
                 {
-                    foreach (var func in GetStylizationFunctions())
+                    foreach (var func in Utility.GetStylizationFunctions())
                     {
                         sortedFuncs.Add(func.Name, func);
                     }
@@ -207,7 +209,7 @@
                 }
                 LoadCompletableFunctions(caps.Expression.SupportedFunctions);
                 if (attachStylizationFunctions)
-                    LoadCompletableFunctions(GetStylizationFunctions());
+                    LoadCompletableFunctions(Utility.GetStylizationFunctions());
 
                 //Spatial Operators
                 foreach (var op in caps.Filter.SpatialOperations)
@@ -266,218 +268,6 @@
             }
         }
 
-        private IEnumerable<FdoProviderCapabilitiesExpressionFunctionDefinition> GetStylizationFunctions()
-        {
-            //ARGB
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>()
-                {
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "aValue", //NOXLATE
-                        Description = Strings.Func_ARGB_AValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.Int32
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "rValue", //NOXLATE
-                        Description = Strings.Func_ARGB_RValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.Int32
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "gValue", //NOXLATE
-                        Description = Strings.Func_ARGB_GValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.Int32
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "bValue", //NOXLATE
-                        Description = Strings.Func_ARGB_BValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.Int32
-                    },
-                },
-                Description = Strings.Func_ARGB_Description,
-                Name = "ARGB", //NOXLATE
-                ReturnType = "Int32" //NOXLATE
-            };
-            //DECAP
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>()
-                {
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "strValue", //NOXLATE
-                        Description = Strings.Func_DECAP_StringValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    }
-                },
-                Description = Strings.Func_DECAP_Description,
-                Name = "DECAP", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //FEATURECLASS
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>(),
-                Description = Strings.Func_FEATURECLASS_Description,
-                Name = "FEATURECLASS", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //FEATUREID
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>(),
-                Description = Strings.Func_FEATUREID_Description,
-                Name = "FEATUREID", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //IF
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>()
-                {
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "condition", //NOXLATE
-                        Description = Strings.Func_IF_ConditionDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "trueValue", //NOXLATE
-                        Description = Strings.Func_IF_TrueValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "falseValue", //NOXLATE
-                        Description = Strings.Func_IF_FalseValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    }
-                },
-                Description = Strings.Func_IF_Description,
-                Name = "IF", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //LAYERID
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>(),
-                Description = Strings.Func_LAYERID_Description,
-                Name = "LAYERID", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //LOOKUP
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>()
-                {
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "expression", //NOXLATE
-                        Description = Strings.Func_LOOKUP_ExpressionDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "defaultValue", //NOXLATE
-                        Description = Strings.Func_LOOKUP_DefaultValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "index", //NOXLATE
-                        Description = Strings.Func_LOOKUP_IndexDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "value", //NOXLATE
-                        Description = Strings.Func_LOOKUP_ValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    }
-                },
-                Description = Strings.Func_LOOKUP_Description,
-                Name = "LOOKUP", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //MAPNAME
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>(),
-                Description = Strings.Func_MAPNAME_Description,
-                Name = "MAPNAME", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //RANGE
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>()
-                {
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "expression", //NOXLATE
-                        Description = Strings.Func_RANGE_ExpressionDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "rangeMin", //NOXLATE
-                        Description = Strings.Func_RANGE_MinDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "rangeMax", //NOXLATE
-                        Description = Strings.Func_RANGE_MaxDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "defaultValue", //NOXLATE
-                        Description = Strings.Func_RANGE_DefaultValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    },
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "value", //NOXLATE
-                        Description = Strings.Func_RANGE_ValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    }
-                },
-                Description = Strings.Func_RANGE_Description,
-                Name = "RANGE", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //SESSION
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>(),
-                Description = Strings.Func_SESSION_Description,
-                Name = "SESSION", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-            //URLENCODE
-            yield return new FdoProviderCapabilitiesExpressionFunctionDefinition()
-            {
-                ArgumentDefinitionList = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition>()
-                {
-                    new FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition()
-                    {
-                        Name = "strValue", //NOXLATE
-                        Description = Strings.Func_URLENCODE_StringValueDescription,
-                        DataType = FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinitionDataType.String
-                    }
-                },
-                Description = Strings.Func_URLENCODE_Description,
-                Name = "URLENCODE", //NOXLATE
-                ReturnType = "String" //NOXLATE
-            };
-        }
-
         private void InsertText(string exprText)
         {
             int index = ExpressionText.SelectionStart;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FdoCapabilities.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FdoCapabilities.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FdoCapabilities.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -149,7 +149,10 @@
 
         IFdoSchemaCapabilities Schema { get; }
     }
+}
 
+namespace OSGeo.MapGuide.ObjectModels.Capabilities.v1_0_0
+{
     partial class FdoProviderCapabilities : IFdoProviderCapabilities
     {
         IFdoCommandCapabilities IFdoProviderCapabilities.Command
@@ -300,10 +303,8 @@
     }
 }
 
-namespace OSGeo.MapGuide.ObjectModels.Capabilities_1_1_0
+namespace OSGeo.MapGuide.ObjectModels.Capabilities.v1_1_0
 {
-    using OSGeo.MapGuide.ObjectModels.Capabilities;
-
     partial class FdoProviderCapabilities : IFdoProviderCapabilities
     {
         IFdoCommandCapabilities IFdoProviderCapabilities.Command

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/RuntimeMapImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/RuntimeMapImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/RuntimeMapImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -25,7 +25,7 @@
 using System.Collections.Generic;
 using System.Linq;
 
-namespace OSGeo.MapGuide.ObjectModels.RuntimeMap
+namespace OSGeo.MapGuide.ObjectModels.RuntimeMap.v2_6_0
 {
     partial class RuntimeMap : IRuntimeMapInfo
     {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -113,7 +113,7 @@
         {
             //HACK: MGOS 2.2 outputs different capabilities xml (because it's actually the correct one!), so
             //without breaking support against 2.1 and older servers, we transform the xml to its pre-2.2 form
-            if (type == typeof(FdoProviderCapabilities) && this.SiteVersion < new Version(2, 2))
+            if (type == typeof(OSGeo.MapGuide.ObjectModels.Capabilities.v1_0_0.FdoProviderCapabilities) && this.SiteVersion < new Version(2, 2))
             {
                 StringBuilder sb = null;
                 using (StreamReader reader = new StreamReader(data))

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -39,7 +39,6 @@
         private Dictionary<string, IResource> _resources;
         private Dictionary<string, FeatureSourceDescription> _schemas;
         private Dictionary<string, FdoSpatialContextList> _spatialContexts;
-        private Dictionary<string, FdoProviderCapabilities> _caps;
 
         private IResourceService _resSvc;
         private IFeatureService _featSvc;
@@ -57,7 +56,6 @@
             _resources = new Dictionary<string, IResource>();
             _schemas = new Dictionary<string, FeatureSourceDescription>();
             _spatialContexts = new Dictionary<string, FdoSpatialContextList>();
-            _caps = new Dictionary<string, FdoProviderCapabilities>();
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -26,6 +26,7 @@
 using OSGeo.MapGuide.MaestroAPI.Schema;
 using OSGeo.MapGuide.ObjectModels;
 using OSGeo.MapGuide.ObjectModels.Capabilities;
+using OSGeo.MapGuide.ObjectModels.Capabilities.v1_0_0;
 using OSGeo.MapGuide.ObjectModels.LayerDefinition;
 using OSGeo.MapGuide.ObjectModels.MapDefinition;
 using OSGeo.MapGuide.ObjectModels.WatermarkDefinition;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/HttpServerConnection.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -1796,7 +1796,7 @@
         {
             string req = m_reqBuilder.GetProviderCapabilities(provider);
 
-            var o = DeserializeObject<OSGeo.MapGuide.ObjectModels.Capabilities_1_1_0.FdoProviderCapabilities>(this.OpenRead(req));
+            var o = DeserializeObject<OSGeo.MapGuide.ObjectModels.Capabilities.v1_1_0.FdoProviderCapabilities>(this.OpenRead(req));
             return o;
         }
 
@@ -1986,7 +1986,7 @@
             var req = m_reqBuilder.DescribeRuntimeMap(mapName, requestedFeatures, iconsPerScaleRange, iconFormat, iconWidth, iconHeight);
             using (var s = this.OpenRead(req))
             {
-                var info = this.DeserializeObject<OSGeo.MapGuide.ObjectModels.RuntimeMap.RuntimeMap>(s);
+                var info = this.DeserializeObject<OSGeo.MapGuide.ObjectModels.RuntimeMap.v2_6_0.RuntimeMap>(s);
                 return info;
             }
         }
@@ -1996,7 +1996,7 @@
             var req = m_reqBuilder.CreateRuntimeMap(mapDefinition, targetMapName, requestedFeatures, iconsPerScaleRange, iconFormat, iconWidth, iconHeight);
             using (var s = this.OpenRead(req))
             {
-                var info = this.DeserializeObject<OSGeo.MapGuide.ObjectModels.RuntimeMap.RuntimeMap>(s);
+                var info = this.DeserializeObject<OSGeo.MapGuide.ObjectModels.RuntimeMap.v2_6_0.RuntimeMap>(s);
                 return info;
             }
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Local/LocalConnection.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Local/LocalConnection.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Local/LocalConnection.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -687,7 +687,7 @@
         public IFdoProviderCapabilities GetProviderCapabilities(string provider)
         {
             var fes = GetFeatureService();
-            var res = (IFdoProviderCapabilities)base.DeserializeObject(typeof(OSGeo.MapGuide.ObjectModels.Capabilities_1_1_0.FdoProviderCapabilities), new MgReadOnlyStream(() => fes.GetCapabilities(provider)));
+            var res = (IFdoProviderCapabilities)base.DeserializeObject(typeof(OSGeo.MapGuide.ObjectModels.Capabilities.v1_1_0.FdoProviderCapabilities), new MgReadOnlyStream(() => fes.GetCapabilities(provider)));
             LogMethodCall("MgFeatureService::GetProviderCapabilities", true, provider);
             return res;
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Native/LocalNativeConnection.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -231,7 +231,7 @@
                 return fes.GetCapabilities(provider);
             };
             LogMethodCall("MgFeatureService::GetProviderCapabilities", true, provider);
-            return base.DeserializeObject<OSGeo.MapGuide.ObjectModels.Capabilities_1_1_0.FdoProviderCapabilities>(new MgReadOnlyStream(fetch));
+            return base.DeserializeObject<OSGeo.MapGuide.ObjectModels.Capabilities.v1_1_0.FdoProviderCapabilities>(new MgReadOnlyStream(fetch));
         }
 
         public override System.IO.Stream GetResourceData(string resourceID, string dataname)

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/BaseSerializable.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/BaseSerializable.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/BaseSerializable.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -33,7 +33,7 @@
     {
         protected virtual string NormalizedSerialize(XmlSerializer serializer, object obj)
         {
-            return Utility.NormalizedSerialize(serializer, obj);
+            return Utils.NormalizedSerialize(serializer, obj);
         }
     }
 
@@ -41,12 +41,12 @@
     {
         protected string SerializeHTMLColor(Color color, bool bIncludeAlpha)
         {
-            return Utility.SerializeHTMLColor(color, bIncludeAlpha);
+            return Utils.SerializeHTMLColor(color, bIncludeAlpha);
         }
 
         protected Color ParseHTMLColor(string strColor)
         {
-            return Utility.ParseHTMLColor(strColor);
+            return Utils.ParseHTMLColor(strColor);
         }
     }
 }
\ No newline at end of file

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/FdoCapabilities.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/FdoCapabilities.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/FdoCapabilities.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -0,0 +1,154 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace OSGeo.MapGuide.ObjectModels.Capabilities
+{
+    public interface IFdoCommandCapabilities
+    {
+        string[] SupportedCommands { get; }
+
+        bool SupportsParameters { get; }
+
+        bool SupportsTimeout { get; }
+    }
+
+    public interface IFdoConnectionCapabilities
+    {
+        string[] SupportedSpatialContextExtentTypes { get; }
+
+        bool SupportsConfiguration { get; }
+
+        bool SupportsLocking { get; }
+
+        bool SupportsLongTransactions { get; }
+
+        bool SupportsSQL { get; }
+
+        bool SupportsTimeout { get; }
+
+        bool SupportsTransactions { get; }
+
+        string ThreadCapability { get; }
+    }
+
+    public interface IFdoExpressionCapabilities
+    {
+        IFdoFunctionDefintion[] SupportedFunctions { get; }
+
+        string[] ExpressionTypes { get; }
+    }
+
+    public interface IFdoFunctionArgumentDefinition
+    {
+        string Name { get; }
+
+        string Description { get; }
+    }
+
+    public interface IFdoFunctionDefintionSignature
+    {
+        IFdoFunctionArgumentDefinition[] Arguments { get; }
+
+        string ReturnType { get; }
+    }
+
+    public interface IFdoFunctionDefintion
+    {
+        string Name { get; }
+
+        string Description { get; }
+
+        IFdoFunctionDefintionSignature[] Signatures { get; }
+    }
+
+    public interface IFdoFilterCapabilities
+    {
+        string[] ConditionTypes { get; }
+
+        string[] DistanceOperations { get; }
+
+        string[] SpatialOperations { get; }
+
+        bool SupportsGeodesicDistance { get; }
+
+        bool SupportsNonLiteralGeometricOperations { get; }
+    }
+
+    public interface IFdoGeometryCapabilities
+    {
+        string[] SupportedComponentTypes { get; }
+
+        string Dimensionality { get; }
+
+        string[] SupportedGeometryTypes { get; }
+    }
+
+    public interface IFdoRasterCapabilities
+    {
+        bool SupportsRaster { get; }
+
+        bool SupportsStitching { get; }
+
+        bool SupportsSubsampling { get; }
+    }
+
+    public interface IFdoSchemaCapabilities
+    {
+        string[] SupportedClassTypes { get; }
+
+        string[] SupportedDataTypes { get; }
+
+        bool SupportsAssociationProperties { get; }
+
+        bool SupportsInheritance { get; }
+
+        bool SupportsMultipleSchemas { get; }
+
+        bool SupportsNetworkModel { get; }
+
+        bool SupportsObjectProperties { get; }
+
+        bool SupportsSchemaOverrides { get; }
+    }
+
+    public interface IFdoProviderCapabilities
+    {
+        IFdoCommandCapabilities Command { get; }
+
+        IFdoConnectionCapabilities Connection { get; }
+
+        IFdoExpressionCapabilities Expression { get; }
+
+        IFdoFilterCapabilities Filter { get; }
+
+        IFdoGeometryCapabilities Geometry { get; }
+
+        IFdoRasterCapabilities Raster { get; }
+
+        IFdoSchemaCapabilities Schema { get; }
+    }
+}
\ No newline at end of file

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_0_0/FdoCapabilitiesImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_0_0/FdoCapabilitiesImpl.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_0_0/FdoCapabilitiesImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -0,0 +1,179 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace OSGeo.MapGuide.ObjectModels.Capabilities.v1_0_0
+{
+    partial class FdoProviderCapabilities : IFdoProviderCapabilities
+    {
+        IFdoCommandCapabilities IFdoProviderCapabilities.Command
+        {
+            get { return this.Command; }
+        }
+
+        IFdoConnectionCapabilities IFdoProviderCapabilities.Connection
+        {
+            get { return this.Connection; }
+        }
+
+        IFdoExpressionCapabilities IFdoProviderCapabilities.Expression
+        {
+            get { return this.Expression; }
+        }
+
+        IFdoFilterCapabilities IFdoProviderCapabilities.Filter
+        {
+            get { return this.Filter; }
+        }
+
+        IFdoGeometryCapabilities IFdoProviderCapabilities.Geometry
+        {
+            get { return this.Geometry; }
+        }
+
+        IFdoRasterCapabilities IFdoProviderCapabilities.Raster
+        {
+            get { return this.Raster; }
+        }
+
+        IFdoSchemaCapabilities IFdoProviderCapabilities.Schema
+        {
+            get { return this.Schema; }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesCommand : IFdoCommandCapabilities
+    {
+        string[] IFdoCommandCapabilities.SupportedCommands
+        {
+            get { return this.SupportedCommands.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesConnection : IFdoConnectionCapabilities
+    {
+        [XmlIgnore]
+        public string[] SupportedSpatialContextExtentTypes
+        {
+            get { return this.SpatialContextExtent.Select(x => x.ToString()).ToArray(); }
+        }
+
+        string IFdoConnectionCapabilities.ThreadCapability
+        {
+            get { return this.ThreadCapability.ToString(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesExpressionFunctionDefinition : IFdoFunctionDefintion, IFdoFunctionDefintionSignature
+    {
+        [XmlIgnore]
+        public IFdoFunctionArgumentDefinition[] Arguments
+        {
+            get { return this.ArgumentDefinitionList.ToArray(); }
+        }
+
+        [XmlIgnore]
+        public IFdoFunctionDefintionSignature[] Signatures
+        {
+            get { return new IFdoFunctionDefintionSignature[] { this }; }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesExpressionFunctionDefinitionArgumentDefinition : IFdoFunctionArgumentDefinition
+    {
+    }
+
+    partial class FdoProviderCapabilitiesExpression : IFdoExpressionCapabilities
+    {
+        [XmlIgnore]
+        public IFdoFunctionDefintion[] SupportedFunctions
+        {
+            get { return this.FunctionDefinitionList.ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] ExpressionTypes
+        {
+            get { return this.Type.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesFilter : IFdoFilterCapabilities
+    {
+        [XmlIgnore]
+        public string[] ConditionTypes
+        {
+            get { return this.Condition.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] DistanceOperations
+        {
+            get { return this.Distance.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] SpatialOperations
+        {
+            get { return this.Spatial.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesGeometry : IFdoGeometryCapabilities
+    {
+        [XmlIgnore]
+        public string[] SupportedComponentTypes
+        {
+            get { return this.Components.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] SupportedGeometryTypes
+        {
+            get { return this.Types.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesRaster : IFdoRasterCapabilities
+    {
+    }
+
+    partial class FdoProviderCapabilitiesSchema : IFdoSchemaCapabilities
+    {
+        [XmlIgnore]
+        public string[] SupportedClassTypes
+        {
+            get { return this.Class.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] SupportedDataTypes
+        {
+            get { return this.Data.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+}
\ No newline at end of file

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_1_0/FdoCapabilitiesImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_1_0/FdoCapabilitiesImpl.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Capabilities/v1_1_0/FdoCapabilitiesImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -0,0 +1,188 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace OSGeo.MapGuide.ObjectModels.Capabilities.v1_1_0
+{
+    partial class FdoProviderCapabilities : IFdoProviderCapabilities
+    {
+        IFdoCommandCapabilities IFdoProviderCapabilities.Command
+        {
+            get { return this.Command; }
+        }
+
+        IFdoConnectionCapabilities IFdoProviderCapabilities.Connection
+        {
+            get { return this.Connection; }
+        }
+
+        IFdoExpressionCapabilities IFdoProviderCapabilities.Expression
+        {
+            get { return this.Expression; }
+        }
+
+        IFdoFilterCapabilities IFdoProviderCapabilities.Filter
+        {
+            get { return this.Filter; }
+        }
+
+        IFdoGeometryCapabilities IFdoProviderCapabilities.Geometry
+        {
+            get { return this.Geometry; }
+        }
+
+        IFdoRasterCapabilities IFdoProviderCapabilities.Raster
+        {
+            get { return this.Raster; }
+        }
+
+        IFdoSchemaCapabilities IFdoProviderCapabilities.Schema
+        {
+            get { return this.Schema; }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesCommand : IFdoCommandCapabilities
+    {
+        string[] IFdoCommandCapabilities.SupportedCommands
+        {
+            get { return this.SupportedCommands.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesConnection : IFdoConnectionCapabilities
+    {
+        [XmlIgnore]
+        public string[] SupportedSpatialContextExtentTypes
+        {
+            get { return this.SpatialContextExtent.Select(x => x.ToString()).ToArray(); }
+        }
+
+        string IFdoConnectionCapabilities.ThreadCapability
+        {
+            get { return this.ThreadCapability.ToString(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesExpressionFunctionDefinition : IFdoFunctionDefintion
+    {
+        [XmlIgnore]
+        public IFdoFunctionDefintionSignature[] Signatures
+        {
+            get { return this.SignatureDefinitionCollection.ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition : IFdoFunctionDefintionSignature
+    {
+        [XmlIgnore]
+        public IFdoFunctionArgumentDefinition[] Arguments
+        {
+            get { return this.ArgumentDefinitionList.ArgumentDefinition.ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string ReturnType
+        {
+            get { return this.DataType.ToString(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition : IFdoFunctionArgumentDefinition
+    {
+    }
+
+    partial class FdoProviderCapabilitiesExpression : IFdoExpressionCapabilities
+    {
+        [XmlIgnore]
+        public IFdoFunctionDefintion[] SupportedFunctions
+        {
+            get { return this.FunctionDefinitionList.ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] ExpressionTypes
+        {
+            get { return this.Type.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesFilter : IFdoFilterCapabilities
+    {
+        [XmlIgnore]
+        public string[] ConditionTypes
+        {
+            get { return this.Condition.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] DistanceOperations
+        {
+            get { return this.Distance.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] SpatialOperations
+        {
+            get { return this.Spatial.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesGeometry : IFdoGeometryCapabilities
+    {
+        [XmlIgnore]
+        public string[] SupportedComponentTypes
+        {
+            get { return this.Components.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] SupportedGeometryTypes
+        {
+            get { return this.Types.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+
+    partial class FdoProviderCapabilitiesRaster : IFdoRasterCapabilities
+    {
+    }
+
+    partial class FdoProviderCapabilitiesSchema : IFdoSchemaCapabilities
+    {
+        [XmlIgnore]
+        public string[] SupportedClassTypes
+        {
+            get { return this.Class.Select(x => x.ToString()).ToArray(); }
+        }
+
+        [XmlIgnore]
+        public string[] SupportedDataTypes
+        {
+            get { return this.Data.Select(x => x.ToString()).ToArray(); }
+        }
+    }
+}
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/IFdoSpatialContext.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/IFdoSpatialContext.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/IFdoSpatialContext.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -241,9 +241,9 @@
             {
                 var genMeta = meta["gml:GenericMetaData"]; //NOXLATE
 
-                var scType = Utility.GetFdoElement(genMeta, "SCExtentType"); //NOXLATE
-                var xyTol = Utility.GetFdoElement(genMeta, "XYTolerance"); //NOXLATE
-                var zTol = Utility.GetFdoElement(genMeta, "ZTolerance"); //NOXLATE
+                var scType = Utils.GetFdoElement(genMeta, "SCExtentType"); //NOXLATE
+                var xyTol = Utils.GetFdoElement(genMeta, "XYTolerance"); //NOXLATE
+                var zTol = Utils.GetFdoElement(genMeta, "ZTolerance"); //NOXLATE
 
                 //this.ExtentType = (scType == null || scType.InnerText == "dynamic") ? FdoSpatialContextListSpatialContextExtentType.Dynamic : FdoSpatialContextListSpatialContextExtentType.Static;
 
@@ -305,10 +305,10 @@
                 this.CoordinateSystemName = href.Substring(href.LastIndexOf("#") + 1); //NOXLATE
             }
 
-            var wktCrs = Utility.GetFdoElement(baseCrs, "WKTCRS"); //NOXLATE
+            var wktCrs = Utils.GetFdoElement(baseCrs, "WKTCRS"); //NOXLATE
             if (wktCrs != null)
             {
-                var wkt = Utility.GetFdoElement(wktCrs, "WKT"); //NOXLATE
+                var wkt = Utils.GetFdoElement(wktCrs, "WKT"); //NOXLATE
                 if (wkt != null)
                 {
                     this.CoordinateSystemWkt = wkt.InnerText;

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/ResourcePackageManifest.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/ResourcePackageManifest.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/ResourcePackageManifest.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -0,0 +1,78 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace OSGeo.MapGuide.ObjectModels.Common
+{
+    partial class ResourcePackageManifestOperationsOperationParameters
+    {
+        /// <summary>
+        /// Gets the value of the specified parameter
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public string GetParameterValue(string name)
+        {
+            if (this.parameterField != null)
+            {
+                foreach (var p in this.parameterField)
+                {
+                    if (p.Name.Equals(name))
+                    {
+                        return p.Value;
+                    }
+                }
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// Sets the value of the specified parameter
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="value"></param>
+        public void SetParameterValue(string name, string value)
+        {
+            if (this.parameterField == null)
+                this.parameterField = new System.ComponentModel.BindingList<ResourcePackageManifestOperationsOperationParametersParameter>();
+
+            foreach (var p in this.parameterField)
+            {
+                if (p.Name.Equals(name))
+                {
+                    p.Value = value;
+                    return;
+                }
+            }
+
+            this.parameterField.Add(new ResourcePackageManifestOperationsOperationParametersParameter()
+            {
+                Name = name,
+                Value = value
+            });
+        }
+    }
+}
\ No newline at end of file

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/UnmanagedDataList.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/UnmanagedDataList.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Common/UnmanagedDataList.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -0,0 +1,84 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+
+namespace OSGeo.MapGuide.ObjectModels.Common
+{
+    partial class UnmanagedDataListUnmanagedDataFile
+    {
+        [XmlIgnore]
+        public string FileName
+        {
+            get
+            {
+                string str = this.unmanagedDataIdField;
+                if (!string.IsNullOrEmpty(str))
+                {
+                    if (str.Contains("/")) //NOXLATE
+                    {
+                        return str.Substring(str.LastIndexOf("/") + 1); //NOXLATE
+                    }
+                    else
+                    {
+                        return str.Substring(str.LastIndexOf("]") + 1); //NOXLATE
+                    }
+                }
+                return string.Empty;
+            }
+        }
+    }
+
+    partial class UnmanagedDataListUnmanagedDataFolder
+    {
+        [XmlIgnore]
+        public string FolderName
+        {
+            get
+            {
+                string str = this.unmanagedDataIdField;
+                if (!string.IsNullOrEmpty(str))
+                {
+                    if (str.EndsWith("/"))  //NOXLATE
+                        str = str.Substring(0, str.Length - 1);
+
+                    var tokens = str.Split('/'); //NOXLATE
+                    if (tokens.Length == 1)
+                    {
+                        var p = tokens[0];
+                        if (p.EndsWith("]")) //NOXLATE
+                            return p;
+                        else
+                            return p.Substring(p.IndexOf("]") + 1); //NOXLATE
+                    }
+                    else
+                        return tokens[tokens.Length - 1];
+                }
+                return string.Empty;
+            }
+        }
+    }
+}
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/FeatureSource/v1_0_0/FeatureSourceImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/FeatureSource/v1_0_0/FeatureSourceImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/FeatureSource/v1_0_0/FeatureSourceImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -180,7 +180,7 @@
         {
             get
             {
-                return Utility.ToConnectionString(this.GetConnectionProperties());
+                return Utils.ToConnectionString(this.GetConnectionProperties());
             }
         }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/LayerDefinitionInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/LayerDefinitionInterfaces.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/LayerDefinitionInterfaces.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -2173,7 +2173,7 @@
         public static void SetBlockColor(this IBlockSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym");
-            sym.BlockColor = Utility.SerializeHTMLColor(c, true);
+            sym.BlockColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2184,7 +2184,7 @@
         public static void SetLayerColor(this IBlockSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym"); //NOXLATE
-            sym.LayerColor = Utility.SerializeHTMLColor(c, true);
+            sym.LayerColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2209,7 +2209,7 @@
         public static void SetForegroundColor(this IFontSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym"); //NOXLATE
-            sym.ForegroundColor = Utility.SerializeHTMLColor(c, true);
+            sym.ForegroundColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2307,7 +2307,7 @@
         public static void SetFillColor(this IW2DSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym"); //NOXLATE
-            sym.FillColor = Utility.SerializeHTMLColor(c, true);
+            sym.FillColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2318,7 +2318,7 @@
         public static void SetLineColor(this IW2DSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym"); //NOXLATE
-            sym.LineColor = Utility.SerializeHTMLColor(c, true);
+            sym.LineColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2329,7 +2329,7 @@
         public static void SetTextColor(this IW2DSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym"); //NOXLATE
-            sym.TextColor = Utility.SerializeHTMLColor(c, true);
+            sym.TextColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2340,7 +2340,7 @@
         public static void SetForegroundColor(this ITextSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym"); //NOXLATE
-            sym.ForegroundColor = Utility.SerializeHTMLColor(c, true);
+            sym.ForegroundColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2351,7 +2351,7 @@
         public static void SetBackgroundColor(this ITextSymbol sym, Color c)
         {
             Check.NotNull(sym, "sym"); //NOXLATE
-            sym.BackgroundColor = Utility.SerializeHTMLColor(c, true);
+            sym.BackgroundColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2376,7 +2376,7 @@
         public static void SetBackgroundColor(this IFill fil, Color c)
         {
             Check.NotNull(fil, "fil"); //NOXLATE
-            fil.BackgroundColor = Utility.SerializeHTMLColor(c, true);
+            fil.BackgroundColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2387,7 +2387,7 @@
         public static void SetForegroundColor(this IFill fil, Color c)
         {
             Check.NotNull(fil, "fil"); //NOXLATE
-            fil.ForegroundColor = Utility.SerializeHTMLColor(c, true);
+            fil.ForegroundColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2398,7 +2398,7 @@
         public static void SetTransparencyColor(this IGridColorStyle style, Color c)
         {
             Check.NotNull(style, "style"); //NOXLATE
-            style.TransparencyColor = Utility.SerializeHTMLColor(c, true);
+            style.TransparencyColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>
@@ -2409,7 +2409,7 @@
         public static void SetDefaultColor(this IGridSurfaceStyle style, Color c)
         {
             Check.NotNull(style, "style"); //NOXLATE
-            style.DefaultColor = Utility.SerializeHTMLColor(c, true);
+            style.DefaultColor = Utils.SerializeHTMLColor(c, true);
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_0_0/LayerElementFactoryImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_0_0/LayerElementFactoryImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_0_0/LayerElementFactoryImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -226,9 +226,9 @@
         {
             return new FillType()
             {
-                BackgroundColor = Utility.SerializeHTMLColor(background, true),
+                BackgroundColor = Utils.SerializeHTMLColor(background, true),
                 FillPattern = pattern,
-                ForegroundColor = Utility.SerializeHTMLColor(foreground, true)
+                ForegroundColor = Utils.SerializeHTMLColor(foreground, true)
             };
         }
 
@@ -241,7 +241,7 @@
         {
             return new StrokeType()
             {
-                Color = Utility.SerializeHTMLColor(color, true),
+                Color = Utils.SerializeHTMLColor(color, true),
                 LineStyle = "Solid", //NOXLATE
                 Thickness = "1", //NOXLATE
                 Unit = LengthUnitType.Points
@@ -389,11 +389,11 @@
             return new TextSymbolType()
             {
                 AdvancedPlacement = null,
-                BackgroundColor = Utility.SerializeHTMLColor(Color.White, true),
+                BackgroundColor = Utils.SerializeHTMLColor(Color.White, true),
                 BackgroundStyle = BackgroundStyleType.Transparent,
                 Bold = "false", //NOXLATE
                 FontName = "Arial", //NOXLATE
-                ForegroundColor = Utility.SerializeHTMLColor(Color.Black, true),
+                ForegroundColor = Utils.SerializeHTMLColor(Color.Black, true),
                 HorizontalAlignment = "'Center'", //NOXLATE
                 Italic = "false", //NOXLATE
                 Rotation = "0", //NOXLATE

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_1_0/LayerElementFactoryImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_1_0/LayerElementFactoryImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_1_0/LayerElementFactoryImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -227,9 +227,9 @@
         {
             return new FillType()
             {
-                BackgroundColor = Utility.SerializeHTMLColor(background, true),
+                BackgroundColor = Utils.SerializeHTMLColor(background, true),
                 FillPattern = pattern,
-                ForegroundColor = Utility.SerializeHTMLColor(foreground, true)
+                ForegroundColor = Utils.SerializeHTMLColor(foreground, true)
             };
         }
 
@@ -242,7 +242,7 @@
         {
             return new StrokeType()
             {
-                Color = Utility.SerializeHTMLColor(color, true),
+                Color = Utils.SerializeHTMLColor(color, true),
                 LineStyle = "Solid", //NOXLATE
                 Thickness = "1", //NOXLATE
                 Unit = LengthUnitType.Points
@@ -390,11 +390,11 @@
             return new TextSymbolType()
             {
                 AdvancedPlacement = null,
-                BackgroundColor = Utility.SerializeHTMLColor(Color.White, true),
+                BackgroundColor = Utils.SerializeHTMLColor(Color.White, true),
                 BackgroundStyle = BackgroundStyleType.Transparent,
                 Bold = "false", //NOXLATE
                 FontName = "Arial", //NOXLATE
-                ForegroundColor = Utility.SerializeHTMLColor(Color.Black, true),
+                ForegroundColor = Utils.SerializeHTMLColor(Color.Black, true),
                 HorizontalAlignment = "'Center'", //NOXLATE
                 Italic = "false", //NOXLATE
                 Rotation = "0", //NOXLATE

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_2_0/LayerElementFactoryImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_2_0/LayerElementFactoryImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_2_0/LayerElementFactoryImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -228,9 +228,9 @@
         {
             return new FillType()
             {
-                BackgroundColor = Utility.SerializeHTMLColor(background, true),
+                BackgroundColor = Utils.SerializeHTMLColor(background, true),
                 FillPattern = pattern,
-                ForegroundColor = Utility.SerializeHTMLColor(foreground, true)
+                ForegroundColor = Utils.SerializeHTMLColor(foreground, true)
             };
         }
 
@@ -243,7 +243,7 @@
         {
             return new StrokeType()
             {
-                Color = Utility.SerializeHTMLColor(color, true),
+                Color = Utils.SerializeHTMLColor(color, true),
                 LineStyle = "Solid", //NOXLATE
                 Thickness = "1", //NOXLATE
                 Unit = LengthUnitType.Points
@@ -391,11 +391,11 @@
             return new TextSymbolType()
             {
                 AdvancedPlacement = null,
-                BackgroundColor = Utility.SerializeHTMLColor(Color.White, true),
+                BackgroundColor = Utils.SerializeHTMLColor(Color.White, true),
                 BackgroundStyle = BackgroundStyleType.Transparent,
                 Bold = "false", //NOXLATE
                 FontName = "Arial", //NOXLATE
-                ForegroundColor = Utility.SerializeHTMLColor(Color.Black, true),
+                ForegroundColor = Utils.SerializeHTMLColor(Color.Black, true),
                 HorizontalAlignment = "'Center'", //NOXLATE
                 Italic = "false", //NOXLATE
                 Rotation = "0", //NOXLATE

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_3_0/LayerElementFactoryImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_3_0/LayerElementFactoryImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v1_3_0/LayerElementFactoryImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -229,9 +229,9 @@
         {
             return new FillType()
             {
-                BackgroundColor = Utility.SerializeHTMLColor(background, true),
+                BackgroundColor = Utils.SerializeHTMLColor(background, true),
                 FillPattern = pattern,
-                ForegroundColor = Utility.SerializeHTMLColor(foreground, true)
+                ForegroundColor = Utils.SerializeHTMLColor(foreground, true)
             };
         }
 
@@ -244,7 +244,7 @@
         {
             return new StrokeType()
             {
-                Color = Utility.SerializeHTMLColor(color, true),
+                Color = Utils.SerializeHTMLColor(color, true),
                 LineStyle = "Solid", //NOXLATE
                 Thickness = "1", //NOXLATE
                 Unit = LengthUnitType.Points
@@ -392,11 +392,11 @@
             return new TextSymbolType()
             {
                 AdvancedPlacement = null,
-                BackgroundColor = Utility.SerializeHTMLColor(Color.White, true),
+                BackgroundColor = Utils.SerializeHTMLColor(Color.White, true),
                 BackgroundStyle = BackgroundStyleType.Transparent,
                 Bold = "false", //NOXLATE
                 FontName = "Arial", //NOXLATE
-                ForegroundColor = Utility.SerializeHTMLColor(Color.Black, true),
+                ForegroundColor = Utils.SerializeHTMLColor(Color.Black, true),
                 HorizontalAlignment = "'Center'", //NOXLATE
                 Italic = "false", //NOXLATE
                 Rotation = "0", //NOXLATE

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_3_0/LayerElementFactoryImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_3_0/LayerElementFactoryImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_3_0/LayerElementFactoryImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -229,9 +229,9 @@
         {
             return new FillType()
             {
-                BackgroundColor = Utility.SerializeHTMLColor(background, true),
+                BackgroundColor = Utils.SerializeHTMLColor(background, true),
                 FillPattern = pattern,
-                ForegroundColor = Utility.SerializeHTMLColor(foreground, true)
+                ForegroundColor = Utils.SerializeHTMLColor(foreground, true)
             };
         }
 
@@ -244,7 +244,7 @@
         {
             return new StrokeType()
             {
-                Color = Utility.SerializeHTMLColor(color, true),
+                Color = Utils.SerializeHTMLColor(color, true),
                 LineStyle = "Solid", //NOXLATE
                 Thickness = "1", //NOXLATE
                 Unit = LengthUnitType.Points
@@ -392,11 +392,11 @@
             return new TextSymbolType()
             {
                 AdvancedPlacement = null,
-                BackgroundColor = Utility.SerializeHTMLColor(Color.White, true),
+                BackgroundColor = Utils.SerializeHTMLColor(Color.White, true),
                 BackgroundStyle = BackgroundStyleType.Transparent,
                 Bold = "false", //NOXLATE
                 FontName = "Arial", //NOXLATE
-                ForegroundColor = Utility.SerializeHTMLColor(Color.Black, true),
+                ForegroundColor = Utils.SerializeHTMLColor(Color.Black, true),
                 HorizontalAlignment = "'Center'", //NOXLATE
                 Italic = "false", //NOXLATE
                 Rotation = "0", //NOXLATE

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_4_0/LayerElementFactoryImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_4_0/LayerElementFactoryImpl.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LayerDefinition/v2_4_0/LayerElementFactoryImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -230,9 +230,9 @@
         {
             return new FillType()
             {
-                BackgroundColor = Utility.SerializeHTMLColor(background, true),
+                BackgroundColor = Utils.SerializeHTMLColor(background, true),
                 FillPattern = pattern,
-                ForegroundColor = Utility.SerializeHTMLColor(foreground, true)
+                ForegroundColor = Utils.SerializeHTMLColor(foreground, true)
             };
         }
 
@@ -245,7 +245,7 @@
         {
             return new StrokeType()
             {
-                Color = Utility.SerializeHTMLColor(color, true),
+                Color = Utils.SerializeHTMLColor(color, true),
                 LineStyle = "Solid", //NOXLATE
                 Thickness = "1", //NOXLATE
                 Unit = LengthUnitType.Points
@@ -393,11 +393,11 @@
             return new TextSymbolType()
             {
                 AdvancedPlacement = null,
-                BackgroundColor = Utility.SerializeHTMLColor(Color.White, true),
+                BackgroundColor = Utils.SerializeHTMLColor(Color.White, true),
                 BackgroundStyle = BackgroundStyleType.Transparent,
                 Bold = "false", //NOXLATE
                 FontName = "Arial", //NOXLATE
-                ForegroundColor = Utility.SerializeHTMLColor(Color.Black, true),
+                ForegroundColor = Utils.SerializeHTMLColor(Color.Black, true),
                 HorizontalAlignment = "'Center'", //NOXLATE
                 Italic = "false", //NOXLATE
                 Rotation = "0", //NOXLATE

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LoadProcedure/LoadProcedureInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LoadProcedure/LoadProcedureInterfaces.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/LoadProcedure/LoadProcedureInterfaces.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -127,7 +127,7 @@
     ///
     /// Once initialized, load procedures can be executed via <see cref="M:OSGeo.MapGuide.MaestroAPI.MgServerConnectionBase.ExecuteLoadProcedure(OSGeo.MapGuide.ObjectModels.LoadProcedure.ILoadProcedure,OSGeo.MapGuide.MaestroAPI.LengthyOperationProgressCallBack,System.Boolean)"/> method
     ///
-    /// Because Load Procedures are also resources, they can be saved into the library repository via the <see cref="M:OSGeo.MapGuide.MaestroAPI.Services.IResourceService.SaveResource(OSGeo.MapGuide.MaestroAPI.Resource.IResource)"/> method
+    /// Because Load Procedures are also resources, they can be saved into the library repository via the <see cref="M:OSGeo.MapGuide.MaestroAPI.Services.IResourceService.SaveResource(IResourceHandle)"/> method
     /// and retrieved from the repository via the <see cref="M:OSGeo.MapGuide.MaestroAPI.Services.IResourceService.GetResource(System.String)"/> method
     /// </summary>
     public interface IBaseLoadProcedure : INotifyPropertyChanged

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj	2014-12-27 09:57:30 UTC (rev 8467)
@@ -47,6 +47,9 @@
     <Compile Include="..\Generated\ApplicationDefinitionInfo-1.0.0.designer.cs">
       <Link>ApplicationDefinition\v1_0_0\ApplicationDefinitionInfo-1.0.0.designer.cs</Link>
     </Compile>
+    <Compile Include="..\Generated\DataStoreList-1.0.0.designer.cs">
+      <Link>Common\DataStoreList-1.0.0.designer.cs</Link>
+    </Compile>
     <Compile Include="..\Generated\DrawingSectionList-1.0.0.designer.cs">
       <Link>Common\DrawingSectionList-1.0.0.designer.cs</Link>
     </Compile>
@@ -62,12 +65,24 @@
     <Compile Include="..\Generated\FdoLongTransactionList-1.0.0.designer.cs">
       <Link>Common\FdoLongTransactionList-1.0.0.designer.cs</Link>
     </Compile>
+    <Compile Include="..\Generated\FdoProviderCapabilities-1.0.0.designer.cs">
+      <Link>Capabilities\v1_0_0\FdoProviderCapabilities-1.0.0.designer.cs</Link>
+    </Compile>
+    <Compile Include="..\Generated\FdoProviderCapabilities-1.1.0.designer.cs">
+      <Link>Capabilities\v1_1_0\FdoProviderCapabilities-1.1.0.designer.cs</Link>
+    </Compile>
     <Compile Include="..\Generated\FdoSpatialContextList-1.0.0.designer.cs">
       <Link>Common\FdoSpatialContextList-1.0.0.designer.cs</Link>
     </Compile>
+    <Compile Include="..\Generated\FeatureProviderRegistry-1.0.0.designer.cs">
+      <Link>Common\FeatureProviderRegistry-1.0.0.designer.cs</Link>
+    </Compile>
     <Compile Include="..\Generated\FeatureSource-1.0.0.designer.cs">
       <Link>FeatureSource\v1_0_0\FeatureSource-1.0.0.designer.cs</Link>
     </Compile>
+    <Compile Include="..\Generated\GroupList-1.0.0.designer.cs">
+      <Link>Common\GroupList-1.0.0.designer.cs</Link>
+    </Compile>
     <Compile Include="..\Generated\LayerDefinition-1.0.0.designer.cs">
       <Link>LayerDefinition\v1_0_0\LayerDefinition-1.0.0.designer.cs</Link>
     </Compile>
@@ -122,6 +137,18 @@
     <Compile Include="..\Generated\ResourceReferenceList-1.0.0.designer.cs">
       <Link>Common\ResourceReferenceList-1.0.0.designer.cs</Link>
     </Compile>
+    <Compile Include="..\Generated\RuntimeMap-2.6.0.designer.cs">
+      <Link>RuntimeMap\v2_6_0\RuntimeMap-2.6.0.designer.cs</Link>
+    </Compile>
+    <Compile Include="..\Generated\SiteInformation-1.0.0.designer.cs">
+      <Link>Common\SiteInformation-1.0.0.designer.cs</Link>
+    </Compile>
+    <Compile Include="..\Generated\SiteVersion-1.0.0.designer.cs">
+      <Link>Common\SiteVersion-1.0.0.designer.cs</Link>
+    </Compile>
+    <Compile Include="..\Generated\StringCollection-1.0.0.designer.cs">
+      <Link>Common\StringCollection-1.0.0.designer.cs</Link>
+    </Compile>
     <Compile Include="..\Generated\SymbolDefinition-1.0.0.designer.cs">
       <Link>SymbolDefinition\v1_0_0\SymbolDefinition-1.0.0.designer.cs</Link>
     </Compile>
@@ -134,6 +161,12 @@
     <Compile Include="..\Generated\SymbolLibrary-1.0.0.designer.cs">
       <Link>SymbolLibrary\v1.0.0\SymbolLibrary-1.0.0.designer.cs</Link>
     </Compile>
+    <Compile Include="..\Generated\UnmanagedDataList-1.0.0.designer.cs">
+      <Link>Common\UnmanagedDataList-1.0.0.designer.cs</Link>
+    </Compile>
+    <Compile Include="..\Generated\UserList-1.0.0.designer.cs">
+      <Link>Common\UserList-1.0.0.designer.cs</Link>
+    </Compile>
     <Compile Include="..\Generated\WatermarkDefinition-2.3.0.designer.cs">
       <Link>WatermarkDefinition\v2_3_0\WatermarkDefinition-2.3.0.designer.cs</Link>
     </Compile>
@@ -152,10 +185,16 @@
     <Compile Include="..\Generated\WebLayout-2.6.0.designer.cs">
       <Link>WebLayout\v2_6_0\WebLayout-2.6.0.designer.cs</Link>
     </Compile>
+    <Compile Include="..\Properties\SignedAssemblyInfo.cs">
+      <Link>SignedAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="ApplicationDefinition\v1_0_0\ApplicationDefinitionImpl.cs" />
     <Compile Include="ApplicationDefinition\v1_0_0\ApplicationDefinitionInfoImpl.cs" />
     <Compile Include="ApplicationDefinition\ApplicationDefinitionInterfaces.cs" />
     <Compile Include="BaseSerializable.cs" />
+    <Compile Include="Capabilities\FdoCapabilities.cs" />
+    <Compile Include="Capabilities\v1_0_0\FdoCapabilitiesImpl.cs" />
+    <Compile Include="Capabilities\v1_1_0\FdoCapabilitiesImpl.cs" />
     <Compile Include="Check.cs" />
     <Compile Include="Common\ExpressionDataType.cs" />
     <Compile Include="Common\ExtendedDataType.cs" />
@@ -169,6 +208,8 @@
     <Compile Include="Common\IResourceIdReference.cs" />
     <Compile Include="Common\ResourceItems.cs" />
     <Compile Include="Common\ResourceList.cs" />
+    <Compile Include="Common\ResourcePackageManifest.cs" />
+    <Compile Include="Common\UnmanagedDataList.cs" />
     <Compile Include="DrawingSource\v1_0_0\DrawingSourceImpl.cs" />
     <Compile Include="DrawingSource\DrawingSourceInterfaces.cs" />
     <Compile Include="FeatureSource\FeatureSourceInterfaces.cs" />
@@ -216,6 +257,8 @@
     <Compile Include="ResourceTypeDescriptor.cs" />
     <Compile Include="ResourceTypeRegistry.cs" />
     <Compile Include="ResourceTypes.cs" />
+    <Compile Include="RuntimeMap\RuntimeMapInterfaces.cs" />
+    <Compile Include="RuntimeMap\v2_6_0\RuntimeMapImpl.cs" />
     <Compile Include="Strings.Designer.cs">
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -443,6 +443,18 @@
         }
 
         /// <summary>
+        /// Creates an empty group security object
+        /// </summary>
+        /// <returns></returns>
+        public static ResourceSecurityTypeGroups CreateSecurityGroup()
+        {
+            return new ResourceSecurityTypeGroups()
+            {
+                Group = new System.ComponentModel.BindingList<ResourceSecurityTypeGroupsGroup>()
+            };
+        }
+
+        /// <summary>
         /// Creates an empty user security object
         /// </summary>
         /// <returns></returns>
@@ -457,8 +469,6 @@
         /// <summary>
         /// Creates the feature source extension.
         /// </summary>
-        /// <param name="name">The name of the extension</param>
-        /// <param name="featureClass">The feature class</param>
         /// <returns></returns>
         public static IFeatureSourceExtension CreateFeatureSourceExtension(string name, string featureClass)
         {
@@ -472,8 +482,32 @@
         }
 
         /// <summary>
+        /// Creates the feature source extension.
+        /// </summary>
+        /// <returns></returns>
+        public static IFeatureSourceExtension CreateFeatureSourceExtension()
+        {
+            return new OSGeo.MapGuide.ObjectModels.FeatureSource.v1_0_0.FeatureSourceTypeExtension()
+            {
+                CalculatedProperty = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.FeatureSource.v1_0_0.CalculatedPropertyType>(),
+                AttributeRelate = new System.ComponentModel.BindingList<OSGeo.MapGuide.ObjectModels.FeatureSource.v1_0_0.AttributeRelateType>()
+            };
+        }
+
+        /// <summary>
         /// Creates the calculated property.
         /// </summary>
+        /// <returns></returns>
+        public static ICalculatedProperty CreateCalculatedProperty()
+        {
+            return new OSGeo.MapGuide.ObjectModels.FeatureSource.v1_0_0.CalculatedPropertyType()
+            {
+            };
+        }
+
+        /// <summary>
+        /// Creates the calculated property.
+        /// </summary>
         /// <param name="name">The name of the calculated property</param>
         /// <param name="expression">The FDO Expression</param>
         /// <returns></returns>
@@ -695,6 +729,22 @@
         }
 
         /// <summary>
+        /// Creates the web layout.
+        /// </summary>
+        /// <param name="version">The version.</param>
+        /// <param name="mapDefinitionId">The map definition id.</param>
+        /// <returns></returns>
+        public static IWebLayout CreateWebLayout(Version version, string mapDefinitionId)
+        {
+            if (!_wlFactories.ContainsKey(version))
+                throw new ArgumentException(Strings.UnknownWebLayoutVersion + version.ToString());
+
+            var wl = _wlFactories[version](mapDefinitionId);
+
+            return wl;
+        }
+
+        /// <summary>
         /// Creates a simple label symbol
         /// </summary>
         /// <param name="version"></param>
@@ -1022,5 +1072,36 @@
         {
             return ResourceTypeRegistry.Deserialize(xml);
         }
+
+        /// <summary>
+        /// Serializes the specified resource.
+        /// </summary>
+        /// <param name="res">The resource.</param>
+        /// <returns></returns>
+        public static Stream SerializeResource(IResource resource)
+        {
+            return ResourceTypeRegistry.Serialize(resource);
+        }
+
+        /// <summary>
+        /// Serializes the specified resource.
+        /// </summary>
+        /// <param name="res"></param>
+        /// <returns></returns>
+        public static string SerializeResourceAsString(IResource resource)
+        {
+            return ResourceTypeRegistry.SerializeAsString(resource);
+        }
+
+        /// <summary>
+        /// Deserializes the specified stream for the specified resource type.
+        /// </summary>
+        /// <param name="resourceType">Type of the resource.</param>
+        /// <param name="stream">The stream.</param>
+        /// <returns></returns>
+        public static IResource DeserializeResourceStream(string resourceType, Stream stream)
+        {
+            return ResourceTypeRegistry.Deserialize(resourceType, stream);
+        }
     }
 }
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceContentVersionChecker.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceContentVersionChecker.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceContentVersionChecker.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -47,7 +47,7 @@
         public ResourceContentVersionChecker(Stream stream)
         {
             var ms = new MemoryStream();
-            Utility.CopyStream(stream, ms);
+            Utils.CopyStream(stream, ms);
             ms.Position = 0L; //Rewind
             _stream = ms;
             _reader = new XmlTextReader(_stream);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ResourceTypeRegistry.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -227,7 +227,7 @@
             //House the stream inside a rewindable memory stream
             using (var ms = new MemoryStream())
             {
-                Utility.CopyStream(stream, ms);
+                Utils.CopyStream(stream, ms);
                 ms.Position = 0L; //Rewind
 
                 var rd = ResourceContentVersionChecker.GetVersionFromXmlStream(ms);

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/RuntimeMapInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/RuntimeMapInterfaces.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/RuntimeMapInterfaces.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -0,0 +1,351 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using OSGeo.MapGuide.ObjectModels.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace OSGeo.MapGuide.ObjectModels.RuntimeMap
+{
+    /// <summary>
+    /// Describes the structure of a Runtime Map
+    /// </summary>
+    public interface IRuntimeMapInfo
+    {
+        /// <summary>
+        /// Gets the site version of the MapGuide Server
+        /// </summary>
+        string SiteVersion { get; }
+
+        /// <summary>
+        /// Gets the name of the runtime map. This combined with the session ID provides the
+        /// means for any code using the MapGuide API to open an existing MgMap instance
+        /// </summary>
+        string Name { get; }
+
+        /// <summary>
+        /// Gets the Map Definition resource ID used to create this runtime map
+        /// </summary>
+        string MapDefinition { get; }
+
+        /// <summary>
+        /// Gets the background color
+        /// </summary>
+        string BackgroundColor { get; }
+
+        /// <summary>
+        /// Gets the display DPI of the map
+        /// </summary>
+        int DisplayDpi { get; }
+
+        /// <summary>
+        /// Gets the mime type of any inline icons.
+        /// </summary>
+        /// <remarks>
+        /// If the application did not request any icons as part of the CreateRuntimeMap
+        /// or DescribeRuntimeMap request, this property is null
+        /// </remarks>
+        string IconMimeType { get; }
+
+        /// <summary>
+        /// Gets the coordinate system of this map
+        /// </summary>
+        ICoordinateSystemInfo CoordinateSystem { get; }
+
+        /// <summary>
+        /// Gets the bounding box of this map
+        /// </summary>
+        IEnvelope Extents { get; }
+
+        /// <summary>
+        /// Gets the layers of this map.
+        /// </summary>
+        /// <remarks>
+        /// If the application did not request layer structure as part of the CreateRuntimeMap
+        /// or DescribeRuntimeMap request, this property will be an empty collection
+        /// </remarks>
+        IRuntimeLayerInfoCollection Layers { get; }
+
+        /// <summary>
+        /// Gets the groups of this map.
+        /// </summary>
+        /// <remarks>
+        /// Even if the application did not request layer structure as part of the CreateRuntimeMap
+        /// or DescribeRuntimeMap request, this property will still contain any Base Layer Groups
+        /// if defined in the Map Definition
+        /// </remarks>
+        IRuntimeLayerGroupInfoCollection Groups { get; }
+
+        /// <summary>
+        /// Gets the finite display scales defined for this runtime map
+        /// </summary>
+        double[] FiniteDisplayScales { get; }
+    }
+
+    /// <summary>
+    /// Represents coordinate system information for a Runtime Map
+    /// </summary>
+    public interface ICoordinateSystemInfo
+    {
+        /// <summary>
+        /// Gets the WKT of this coordinate system
+        /// </summary>
+        string Wkt { get; }
+
+        /// <summary>
+        /// Gets the CS-Map coordinate system code of this coordinate system
+        /// </summary>
+        string MentorCode { get; }
+
+        /// <summary>
+        /// Gets the EPSG code of this coordinate system
+        /// </summary>
+        string EpsgCode { get; }
+
+        /// <summary>
+        /// Gets the meters-per-unit value of this runtime map. This value is essential for
+        /// any tile or rendering functionality
+        /// </summary>
+        double MetersPerUnit { get; }
+    }
+
+    /// <summary>
+    /// Models a legend element
+    /// </summary>
+    public interface IRuntimeMapLegendElement
+    {
+        /// <summary>
+        /// Gets the name of the element
+        /// </summary>
+        string Name { get; }
+
+        /// <summary>
+        /// Gets the label of the element
+        /// </summary>
+        string LegendLabel { get; }
+
+        /// <summary>
+        /// Gets the unique id of the element
+        /// </summary>
+        string ObjectID { get; }
+
+        /// <summary>
+        /// Gets the unique id of the element's parent
+        /// </summary>
+        string ParentID { get; }
+
+        /// <summary>
+        /// Gets whether the element will be shown in the legend
+        /// </summary>
+        bool DisplayInLegend { get; }
+
+        /// <summary>
+        /// Gets whether the element will be expanded in the legend
+        /// </summary>
+        bool ExpandInLegend { get; }
+
+        /// <summary>
+        /// Gets whether the element is potentially
+        /// </summary>
+        bool Visible { get; }
+
+        /// <summary>
+        /// Gets whether the element is actually element
+        /// </summary>
+        bool ActuallyVisible { get; }
+    }
+
+    /// <summary>
+    /// Represents a layer of the runtime map
+    /// </summary>
+    public interface IRuntimeLayerInfo : IRuntimeMapLegendElement
+    {
+        /// <summary>
+        /// Gets the type of layer
+        /// </summary>
+        int LayerType { get; }
+
+        /// <summary>
+        /// Gets the Layer Definition ID
+        /// </summary>
+        string LayerDefinition { get; }
+
+        /// <summary>
+        /// Gets feature source information of the layer
+        /// </summary>
+        IFeatureSourceInfo FeatureSource { get; }
+
+        /// <summary>
+        /// Gets information about the scale ranges in the layer
+        /// </summary>
+        IScaleRangeInfoCollection ScaleRanges { get; }
+    }
+
+    /// <summary>
+    /// Represents Feature Source information for a layer
+    /// </summary>
+    public interface IFeatureSourceInfo
+    {
+        /// <summary>
+        /// Gets the resource id of the Feature Source
+        /// </summary>
+        string ResourceID { get; }
+
+        /// <summary>
+        /// Gets the name of the feature class that the layer is rendered from
+        /// </summary>
+        string ClassName { get; }
+
+        /// <summary>
+        /// Gets the name of the geometry property of the feature class that the layer is rendered from
+        /// </summary>
+        string Geometry { get; }
+    }
+
+    /// <summary>
+    /// Represents a group of a runtime map
+    /// </summary>
+    public interface IRuntimeLayerGroupInfo : IRuntimeMapLegendElement
+    {
+        /// <summary>
+        /// Gets the type of the group
+        /// </summary>
+        int GroupType { get; }
+    }
+
+    /// <summary>
+    /// Represents a scale range of a layer
+    /// </summary>
+    public interface IScaleRangeInfo
+    {
+        /// <summary>
+        /// Gets the minimum scale this scale range is applicable for
+        /// </summary>
+        double MinScale { get; }
+
+        /// <summary>
+        /// Gets the maximum scale this scale range is applicable for
+        /// </summary>
+        double MaxScale { get; }
+
+        /// <summary>
+        /// Gets the feature styles for this scale range
+        /// </summary>
+        IFeatureStyleInfoCollection FeatureStyle { get; }
+    }
+
+    /// <summary>
+    /// Represents a feature style
+    /// </summary>
+    public interface IFeatureStyleInfo
+    {
+        /// <summary>
+        /// Gets the type of the feature style
+        /// </summary>
+        int Type { get; }
+
+        /// <summary>
+        /// Gets the style rules for this feature style
+        /// </summary>
+        IRuleInfoCollection Rules { get; }
+    }
+
+    /// <summary>
+    /// Represents a style rule
+    /// </summary>
+    public interface IRuleInfo
+    {
+        /// <summary>
+        /// Gets the legend label for this rule
+        /// </summary>
+        string LegendLabel { get; }
+
+        /// <summary>
+        /// Gets the filter for this rule
+        /// </summary>
+        string Filter { get; }
+
+        /// <summary>
+        /// Gets the icon for this rule
+        /// </summary>
+        string IconBase64 { get; }
+    }
+
+    /// <summary>
+    /// A generic read-only collection interface
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    public interface IReadOnlyCollection<T> : IEnumerable<T>
+    {
+        /// <summary>
+        /// Gets the number of items in this collection
+        /// </summary>
+        int Count { get; }
+
+        /// <summary>
+        /// Gets the item at the given index
+        /// </summary>
+        /// <param name="index"></param>
+        /// <returns></returns>
+        T this[int index]
+        {
+            get;
+        }
+    }
+
+    /// <summary>
+    /// A collection of layers
+    /// </summary>
+    public interface IRuntimeLayerInfoCollection : IReadOnlyCollection<IRuntimeLayerInfo>
+    {
+    }
+
+    /// <summary>
+    /// A collection of groups
+    /// </summary>
+    public interface IRuntimeLayerGroupInfoCollection : IReadOnlyCollection<IRuntimeLayerGroupInfo>
+    {
+    }
+
+    /// <summary>
+    /// A collection of scale ranges
+    /// </summary>
+    public interface IScaleRangeInfoCollection : IReadOnlyCollection<IScaleRangeInfo>
+    {
+    }
+
+    /// <summary>
+    /// A collection of feature styles
+    /// </summary>
+    public interface IFeatureStyleInfoCollection : IReadOnlyCollection<IFeatureStyleInfo>
+    {
+    }
+
+    /// <summary>
+    /// A collection of style rules
+    /// </summary>
+    public interface IRuleInfoCollection : IReadOnlyCollection<IRuleInfo>
+    {
+    }
+}
\ No newline at end of file

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/v2_6_0/RuntimeMapImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/v2_6_0/RuntimeMapImpl.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/RuntimeMap/v2_6_0/RuntimeMapImpl.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -0,0 +1,371 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using OSGeo.MapGuide.ObjectModels.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace OSGeo.MapGuide.ObjectModels.RuntimeMap.v2_6_0
+{
+    partial class RuntimeMap : IRuntimeMapInfo
+    {
+        string IRuntimeMapInfo.SiteVersion
+        {
+            get { return this.SiteVersion; }
+        }
+
+        string IRuntimeMapInfo.Name
+        {
+            get { return this.Name; }
+        }
+
+        string IRuntimeMapInfo.MapDefinition
+        {
+            get { return this.MapDefinition; }
+        }
+
+        string IRuntimeMapInfo.BackgroundColor
+        {
+            get { return this.BackgroundColor; }
+        }
+
+        int IRuntimeMapInfo.DisplayDpi
+        {
+            get
+            {
+                int dpi;
+                if (int.TryParse(this.DisplayDpi, out dpi))
+                    return dpi;
+                return 96;
+            }
+        }
+
+        string IRuntimeMapInfo.IconMimeType
+        {
+            get { return this.IconMimeType; }
+        }
+
+        ICoordinateSystemInfo IRuntimeMapInfo.CoordinateSystem
+        {
+            get { return this.CoordinateSystem; }
+        }
+
+        IEnvelope IRuntimeMapInfo.Extents
+        {
+            get
+            {
+                double minx;
+                double miny;
+                double maxx;
+                double maxy;
+                if (double.TryParse(this.Extents.LowerLeftCoordinate.X, out minx) &&
+                    double.TryParse(this.Extents.LowerLeftCoordinate.Y, out miny) &&
+                    double.TryParse(this.Extents.UpperRightCoordinate.X, out maxx) &&
+                    double.TryParse(this.Extents.UpperRightCoordinate.Y, out maxy))
+                {
+                    return ObjectFactory.CreateEnvelope(minx, miny, maxx, maxy);
+                }
+                return null;
+            }
+        }
+
+        private ReadOnlyLayerCollection _roLayers;
+
+        IRuntimeLayerInfoCollection IRuntimeMapInfo.Layers
+        {
+            get
+            {
+                if (this.Layer == null)
+                    return null;
+
+                if (_roLayers == null)
+                    _roLayers = new ReadOnlyLayerCollection(this.Layer);
+
+                return _roLayers;
+            }
+        }
+
+        private ReadOnlyGroupCollection _roGroups;
+
+        IRuntimeLayerGroupInfoCollection IRuntimeMapInfo.Groups
+        {
+            get
+            {
+                if (this.Group == null)
+                    return null;
+
+                if (_roGroups == null)
+                    _roGroups = new ReadOnlyGroupCollection(this.Group);
+
+                return _roGroups;
+            }
+        }
+
+        double[] IRuntimeMapInfo.FiniteDisplayScales
+        {
+            get
+            {
+                return this.FiniteDisplayScale.ToArray();
+            }
+        }
+    }
+
+    //I love C# generics!
+    internal abstract class ReadOnlyCollectionWrapper<TInterface, TImpl>
+        : IReadOnlyCollection<TInterface>
+        where TImpl : TInterface
+    {
+        private IList<TImpl> _list;
+
+        protected ReadOnlyCollectionWrapper(IList<TImpl> list)
+        {
+            _list = list;
+        }
+
+        public int Count
+        {
+            get { return _list.Count; }
+        }
+
+        public TInterface this[int index]
+        {
+            get { return _list[index]; }
+        }
+
+        private class Enumerator : IEnumerator<TInterface>
+        {
+            private IList<TImpl> _innerList;
+            private int _pos;
+
+            public Enumerator(IList<TImpl> list)
+            {
+                _pos = -1;
+                _innerList = list;
+            }
+
+            public TInterface Current
+            {
+                get { return _innerList[_pos]; }
+            }
+
+            public void Dispose()
+            {
+            }
+
+            object System.Collections.IEnumerator.Current
+            {
+                get { return _innerList[_pos]; }
+            }
+
+            public bool MoveNext()
+            {
+                _pos++;
+                return _pos <= _innerList.Count - 1;
+            }
+
+            public void Reset()
+            {
+                _pos = -1;
+            }
+        }
+
+        public IEnumerator<TInterface> GetEnumerator()
+        {
+            return new Enumerator(_list);
+        }
+
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+        {
+            return _list.GetEnumerator();
+        }
+    }
+
+    partial class RuntimeMapLayer : IRuntimeLayerInfo
+    {
+        int IRuntimeLayerInfo.LayerType
+        {
+            get { return Convert.ToInt32(this.Type); }
+        }
+
+        IFeatureSourceInfo IRuntimeLayerInfo.FeatureSource
+        {
+            get { return this.FeatureSource; }
+        }
+
+        private ScaleRangeCollection _roScales;
+
+        IScaleRangeInfoCollection IRuntimeLayerInfo.ScaleRanges
+        {
+            get
+            {
+                if (this.ScaleRange == null)
+                    return null;
+
+                if (_roScales == null)
+                    _roScales = new ScaleRangeCollection(this.ScaleRange);
+
+                return _roScales;
+            }
+        }
+
+        string IRuntimeMapLegendElement.ObjectID
+        {
+            get { return this.ObjectId; }
+        }
+
+        string IRuntimeMapLegendElement.ParentID
+        {
+            get { return this.ParentId; }
+        }
+    }
+
+    partial class FeatureSourceInfo : IFeatureSourceInfo
+    {
+        string IFeatureSourceInfo.ResourceID
+        {
+            get { return this.ResourceId; }
+        }
+    }
+
+    partial class RuntimeMapGroup : IRuntimeLayerGroupInfo
+    {
+        int IRuntimeLayerGroupInfo.GroupType
+        {
+            get { return Convert.ToInt32(this.Type); }
+        }
+
+        string IRuntimeMapLegendElement.ObjectID
+        {
+            get { return this.ObjectId; }
+        }
+
+        string IRuntimeMapLegendElement.ParentID
+        {
+            get { return this.ParentId; }
+        }
+    }
+
+    internal class ReadOnlyLayerCollection : ReadOnlyCollectionWrapper<IRuntimeLayerInfo, RuntimeMapLayer>,
+                                             IRuntimeLayerInfoCollection
+    {
+        public ReadOnlyLayerCollection(IList<RuntimeMapLayer> list)
+            : base(list)
+        {
+        }
+    }
+
+    internal class ReadOnlyGroupCollection : ReadOnlyCollectionWrapper<IRuntimeLayerGroupInfo, RuntimeMapGroup>,
+                                             IRuntimeLayerGroupInfoCollection
+    {
+        public ReadOnlyGroupCollection(IList<RuntimeMapGroup> list)
+            : base(list)
+        {
+        }
+    }
+
+    internal class ScaleRangeCollection : ReadOnlyCollectionWrapper<IScaleRangeInfo, ScaleRangeInfo>,
+                                          IScaleRangeInfoCollection
+    {
+        public ScaleRangeCollection(IList<ScaleRangeInfo> list)
+            : base(list)
+        {
+        }
+    }
+
+    internal class FeatureStyleCollection : ReadOnlyCollectionWrapper<IFeatureStyleInfo, FeatureStyleInfo>,
+                                            IFeatureStyleInfoCollection
+    {
+        public FeatureStyleCollection(IList<FeatureStyleInfo> list)
+            : base(list)
+        {
+        }
+    }
+
+    internal class RuleInfoCollection : ReadOnlyCollectionWrapper<IRuleInfo, RuleInfo>,
+                                        IRuleInfoCollection
+    {
+        public RuleInfoCollection(IList<RuleInfo> list)
+            : base(list)
+        {
+        }
+    }
+
+    partial class ScaleRangeInfo : IScaleRangeInfo
+    {
+        private FeatureStyleCollection _roStyles;
+
+        IFeatureStyleInfoCollection IScaleRangeInfo.FeatureStyle
+        {
+            get
+            {
+                if (this.FeatureStyle == null)
+                    return null;
+
+                if (_roStyles == null)
+                    _roStyles = new FeatureStyleCollection(this.FeatureStyle);
+
+                return _roStyles;
+            }
+        }
+    }
+
+    partial class FeatureStyleInfo : IFeatureStyleInfo
+    {
+        int IFeatureStyleInfo.Type
+        {
+            get { return Convert.ToInt32(this.Type); }
+        }
+
+        private RuleInfoCollection _roRules;
+
+        /// <summary>
+        /// Gets the rules in this feature style
+        /// </summary>
+        public IRuleInfoCollection Rules
+        {
+            get
+            {
+                if (this.Rule == null)
+                    return null;
+
+                if (_roRules == null)
+                    _roRules = new RuleInfoCollection(this.Rule);
+
+                return _roRules;
+            }
+        }
+    }
+
+    partial class RuleInfo : IRuleInfo
+    {
+        string IRuleInfo.IconBase64
+        {
+            get { return this.Icon; }
+        }
+    }
+
+    partial class CoordinateSystemType : ICoordinateSystemInfo
+    {
+    }
+}
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Utility.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Utility.cs	2014-12-25 17:06:15 UTC (rev 8466)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/Utility.cs	2014-12-27 09:57:30 UTC (rev 8467)
@@ -36,7 +36,7 @@
     /// <summary>
     /// Utility methods
     /// </summary>
-    public static class Utility
+    public static class Utils
     {
         /// <summary>
         /// Parses a color in HTML notation (ea. #ffaabbff)
@@ -274,7 +274,7 @@
                 {
                     ms.Position = 3;
                     System.IO.MemoryStream mxs = new System.IO.MemoryStream();
-                    Utility.CopyStream(ms, mxs, false);
+                    Utils.CopyStream(ms, mxs, false);
                     mxs.Position = 0;
                     return mxs;
                 }



More information about the mapguide-commits mailing list