[mapguide-commits] r1249 - in trunk/MgDev/Common: MdfModel MdfParser

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Mar 16 02:49:07 EDT 2007


Author: tomfukushima
Date: 2007-03-16 02:49:06 -0400 (Fri, 16 Mar 2007)
New Revision: 1249

Modified:
   trunk/MgDev/Common/MdfModel/Version.cpp
   trunk/MgDev/Common/MdfModel/Version.h
   trunk/MgDev/Common/MdfParser/IOAreaRule.h
   trunk/MgDev/Common/MdfParser/IOAreaSymbolization2D.h
   trunk/MgDev/Common/MdfParser/IOAreaTypeStyle.h
   trunk/MgDev/Common/MdfParser/IODrawingLayerDefinition.h
   trunk/MgDev/Common/MdfParser/IOGridLayerDefinition.h
   trunk/MgDev/Common/MdfParser/IOPointRule.h
   trunk/MgDev/Common/MdfParser/IOPointSymbolization2D.h
   trunk/MgDev/Common/MdfParser/IOPointTypeStyle.h
   trunk/MgDev/Common/MdfParser/IOStroke.cpp
   trunk/MgDev/Common/MdfParser/IOStroke.h
   trunk/MgDev/Common/MdfParser/IOVectorLayerDefinition.h
   trunk/MgDev/Common/MdfParser/IOVectorScaleRange.cpp
   trunk/MgDev/Common/MdfParser/IOVectorScaleRange.h
   trunk/MgDev/Common/MdfParser/stdafx.h
Log:
Some versioning work...

Removed includes of Version.h from the headers; moved the include to stdafx.h instead.

Added some comparison operators to the Version class.

Fixed IOVectorScaleRange so that new 1.1.0 schema elements are not written out to 1.0.0 schema.

TODO: figure out if we want the new parameter declared as Version * verion = NULL or just Version * version (i.e., make it required).  I prefer the latter because then we can use type checking when we need to propagate version to another class in the future.

Modified: trunk/MgDev/Common/MdfModel/Version.cpp
===================================================================
--- trunk/MgDev/Common/MdfModel/Version.cpp	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfModel/Version.cpp	2007-03-16 06:49:06 UTC (rev 1249)
@@ -146,3 +146,35 @@
     return strVersion;
 }
 
+bool Version::operator==(const Version & version) const
+{
+    return m_nMajorNumber == version.m_nMajorNumber && 
+        m_nMinorNumber == version.m_nMinorNumber &&
+        m_nRevisionNumber == version.m_nRevisionNumber;
+}
+
+bool Version::operator>(const Version & version) const
+{
+    if (m_nMajorNumber == version.m_nMajorNumber)
+    {
+        if (m_nMinorNumber == version.m_nMinorNumber)
+            return m_nRevisionNumber > version.m_nRevisionNumber;
+        else
+            return m_nMinorNumber > version.m_nMinorNumber;
+    }
+    else
+        return m_nMajorNumber > version.m_nMajorNumber;
+}
+
+bool Version::operator>=(const Version & version) const
+{
+    if (m_nMajorNumber == version.m_nMajorNumber)
+    {
+        if (m_nMinorNumber == version.m_nMinorNumber)
+            return m_nRevisionNumber >= version.m_nRevisionNumber;
+        else
+            return m_nMinorNumber > version.m_nMinorNumber;
+    }
+    else
+        return m_nMajorNumber > version.m_nMajorNumber;
+}

Modified: trunk/MgDev/Common/MdfModel/Version.h
===================================================================
--- trunk/MgDev/Common/MdfModel/Version.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfModel/Version.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -51,6 +51,10 @@
         int GetRevision()const;
         void SetRevision( const int& nRevisionNumber);
 
+        bool operator==(const Version & version) const;
+        bool operator>(const Version & version) const;
+        bool operator>=(const Version & version) const;
+
         MdfString ToString();
 
     private:

Modified: trunk/MgDev/Common/MdfParser/IOAreaRule.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOAreaRule.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOAreaRule.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -21,7 +21,6 @@
 #include "SAX2ElementHandler.h"
 #include "AreaRule.h"
 #include "AreaTypeStyle.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOAreaSymbolization2D.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOAreaSymbolization2D.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOAreaSymbolization2D.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -21,7 +21,6 @@
 #include "SAX2ElementHandler.h"
 #include "AreaSymbolization2D.h"
 #include "AreaRule.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOAreaTypeStyle.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOAreaTypeStyle.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOAreaTypeStyle.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -21,7 +21,6 @@
 #include "SAX2ElementHandler.h"
 #include "AreaTypeStyle.h"
 #include "VectorScaleRange.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IODrawingLayerDefinition.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IODrawingLayerDefinition.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IODrawingLayerDefinition.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -20,7 +20,6 @@
 
 #include "SAX2ElementHandler.h"
 #include "DrawingLayerDefinition.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOGridLayerDefinition.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOGridLayerDefinition.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOGridLayerDefinition.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -20,7 +20,6 @@
 
 #include "GridLayerDefinition.h"
 #include "SAX2ElementHandler.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOPointRule.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOPointRule.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOPointRule.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -21,7 +21,6 @@
 #include "SAX2ElementHandler.h"
 #include "PointRule.h"
 #include "PointTypeStyle.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOPointSymbolization2D.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOPointSymbolization2D.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOPointSymbolization2D.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -22,7 +22,6 @@
 #include "PointSymbolization2D.h"
 #include "PointRule.h"
 #include "IOSymbol.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOPointTypeStyle.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOPointTypeStyle.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOPointTypeStyle.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -21,7 +21,6 @@
 #include "SAX2ElementHandler.h"
 #include "PointTypeStyle.h"
 #include "VectorScaleRange.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOStroke.cpp
===================================================================
--- trunk/MgDev/Common/MdfParser/IOStroke.cpp	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOStroke.cpp	2007-03-16 06:49:06 UTC (rev 1249)
@@ -137,20 +137,9 @@
     fd << EncodeString(*str);
     fd << "</Unit>" << std::endl; // NOXLATE
 
-    //Property: SizeContext
-    // Only write SizeContext if the version is not less than 1.1
-    bool bWriteSizeContext = true;
-    if (version != NULL)
+    if (!version || ((*version) >= Version(1, 1, 0))) // don't write to pre-1.1.0 schema
     {
-        int nMajor = version->GetMajor();
-        int nMinor = version->GetMinor();
-        double scalerMajorMinorVersion = ( (double)version->GetMajor() ) * 1.0 + ( (double)version->GetMinor() ) * 0.1;
-
-        bWriteSizeContext = (scalerMajorMinorVersion >= 1.1);
-    }
-
-    if (bWriteSizeContext)
-    {
+        //Property: SizeContext
         fd << tab() << "<SizeContext>"; // NOXLATE
         if(stroke->GetSizeContext() == MdfModel::MappingUnits)
         {

Modified: trunk/MgDev/Common/MdfParser/IOStroke.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOStroke.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOStroke.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -20,7 +20,6 @@
 
 #include "SAX2ElementHandler.h"
 #include "Stroke.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOVectorLayerDefinition.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOVectorLayerDefinition.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOVectorLayerDefinition.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -20,7 +20,6 @@
 
 #include "SAX2ElementHandler.h"
 #include "VectorLayerDefinition.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/IOVectorScaleRange.cpp
===================================================================
--- trunk/MgDev/Common/MdfParser/IOVectorScaleRange.cpp	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOVectorScaleRange.cpp	2007-03-16 06:49:06 UTC (rev 1249)
@@ -184,16 +184,20 @@
         }
         else if (dynamic_cast<CompositeTypeStyle*>(scaleRange->GetFeatureTypeStyles()->GetAt(x)) != 0)
         {
-            IOCompositeTypeStyle::Write(fd, dynamic_cast<CompositeTypeStyle*>(scaleRange->GetFeatureTypeStyles()->GetAt(x)));
+            if (!version || ((*version) >= Version(1, 1, 0))) // don't write to pre-1.1.0 schema
+                IOCompositeTypeStyle::Write(fd, dynamic_cast<CompositeTypeStyle*>(scaleRange->GetFeatureTypeStyles()->GetAt(x)));
         }
     }
 
-    ElevationSettings* elevationSettings = scaleRange->GetElevationSettings();
-    if(elevationSettings != NULL)
+    if (!version || ((*version) >= Version(1, 1, 0))) // don't write to pre-1.1.0 schema
     {
-        IOElevationSettings * IO = new IOElevationSettings();
-        IO->Write(fd, elevationSettings);
-        delete IO;
+        ElevationSettings* elevationSettings = scaleRange->GetElevationSettings();
+        if(elevationSettings != NULL)
+        {
+            IOElevationSettings * IO = new IOElevationSettings();
+            IO->Write(fd, elevationSettings);
+            delete IO;
+        }
     }
 
     // Write any previously found unknown XML

Modified: trunk/MgDev/Common/MdfParser/IOVectorScaleRange.h
===================================================================
--- trunk/MgDev/Common/MdfParser/IOVectorScaleRange.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/IOVectorScaleRange.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -21,7 +21,6 @@
 #include "SAX2ElementHandler.h"
 #include "VectorScaleRange.h"
 #include "VectorLayerDefinition.h"
-#include "Version.h"
 
 using namespace XERCES_CPP_NAMESPACE;
 using namespace MDFMODEL_NAMESPACE;

Modified: trunk/MgDev/Common/MdfParser/stdafx.h
===================================================================
--- trunk/MgDev/Common/MdfParser/stdafx.h	2007-03-16 04:48:08 UTC (rev 1248)
+++ trunk/MgDev/Common/MdfParser/stdafx.h	2007-03-16 06:49:06 UTC (rev 1249)
@@ -46,6 +46,7 @@
 
 // MdfModel includes
 #include "MdfModel.h"
+#include "Version.h"
 
 // MdfParser includes
 #include "MdfParser.h"



More information about the mapguide-commits mailing list