From cc8b14b06c53a1c72794e1bac3ce31d501e6f6c9 Mon Sep 17 00:00:00 2001
From: PeiYong Zhang <peiyongz@apache.org>
Date: Mon, 13 Sep 2004 21:38:34 +0000
Subject: [PATCH] getBuiltInBaseValidator

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@176041 13f79535-47bb-0310-9956-ffa450edef68
---
 .../datatype/DatatypeValidatorFactory.cpp      | 18 ++++++++++++++++++
 .../datatype/DatatypeValidatorFactory.hpp      |  2 ++
 2 files changed, 20 insertions(+)

diff --git a/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp b/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
index 2eceddcd6..041f86fd2 100644
--- a/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
+++ b/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
@@ -16,6 +16,9 @@
 
 /*
  * $Log$
+ * Revision 1.29  2004/09/13 21:38:34  peiyongz
+ * getBuiltInBaseValidator
+ *
  * Revision 1.28  2004/09/08 13:56:52  peiyongz
  * Apache License Version 2.0
  *
@@ -775,6 +778,21 @@ XMLCanRepGroup::CanRepGroup DatatypeValidatorFactory::getCanRepGroup(const Datat
     return XMLCanRepGroup::String;
 }
 
+DatatypeValidator* DatatypeValidatorFactory::getBuiltInBaseValidator(const DatatypeValidator* const dv)
+{
+    DatatypeValidator *curdv = (DatatypeValidator*)dv;
+
+    while (curdv)
+    {
+        if (curdv == getBuiltInRegistry()->get(curdv->getTypeLocalName()))
+            return curdv;
+        else
+            curdv = curdv->getBaseValidator();
+     }
+
+     return 0;
+}
+
 // ---------------------------------------------------------------------------
 //  DatatypeValidatorFactory: factory methods
 // ---------------------------------------------------------------------------
diff --git a/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp b/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp
index ff13122bd..4136ecee2 100644
--- a/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp
+++ b/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp
@@ -139,6 +139,8 @@ public:
 
     static XMLCanRepGroup::CanRepGroup getCanRepGroup(const DatatypeValidator* const);
 
+    static DatatypeValidator* getBuiltInBaseValidator(const DatatypeValidator* const);
+
     // -----------------------------------------------------------------------
     // Validator Factory methods
     // -----------------------------------------------------------------------
-- 
GitLab