[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