Removed ValidatingXMLObject interface and implementations.
[shibboleth/cpp-xmltooling.git] / xmltooling / validation / AbstractValidatingXMLObject.cpp
diff --git a/xmltooling/validation/AbstractValidatingXMLObject.cpp b/xmltooling/validation/AbstractValidatingXMLObject.cpp
deleted file mode 100644 (file)
index 5e50d3e..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*\r
- *  Copyright 2001-2006 Internet2\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * AbstractValidatingXMLObject.cpp\r
- * \r
- * Extension of AbstractXMLObject that implements a ValidatingXMLObject. \r
- */\r
-\r
-#include "internal.h"\r
-#include "exceptions.h"\r
-#include "validation/AbstractValidatingXMLObject.h"\r
-\r
-#include <algorithm>\r
-#include <functional>\r
-\r
-using namespace xmltooling;\r
-using namespace std;\r
-\r
-AbstractValidatingXMLObject::ValidatorWrapper::~ValidatorWrapper()\r
-{\r
-    for_each(v.begin(),v.end(),cleanup<Validator>());\r
-}\r
-\r
-AbstractValidatingXMLObject::AbstractValidatingXMLObject(const AbstractValidatingXMLObject& src)\r
-    : AbstractXMLObject(src), m_validators(NULL)\r
-{\r
-    if (src.m_validators) {\r
-        m_validators=new ValidatorWrapper();\r
-        xmltooling::clone(src.m_validators->v,m_validators->v);\r
-    }\r
-}\r
-\r
-AbstractValidatingXMLObject::~AbstractValidatingXMLObject()\r
-{\r
-    delete m_validators;\r
-}\r
-\r
-void AbstractValidatingXMLObject::registerValidator(Validator* validator)\r
-{\r
-    if (!m_validators)\r
-        m_validators=new ValidatorWrapper();\r
-    m_validators->v.push_back(validator);\r
-}\r
-\r
-void AbstractValidatingXMLObject::deregisterValidator(Validator* validator)\r
-{\r
-    if (m_validators) {\r
-        for (std::vector<Validator*>::iterator i=m_validators->v.begin(); i!=m_validators->v.end(); i++) {\r
-            if ((*i)==validator) {\r
-                m_validators->v.erase(i);\r
-                return;\r
-            }\r
-        }\r
-    }\r
-}\r
-\r
-void AbstractValidatingXMLObject::deregisterAll()\r
-{\r
-    delete m_validators;\r
-    m_validators=NULL;\r
-}\r
-\r
-class _validate : public binary_function<const XMLObject*,bool,void> {\r
-public:\r
-    void operator()(const XMLObject* obj, bool propagate) const {\r
-        const ValidatingXMLObject* val = dynamic_cast<const ValidatingXMLObject*>(obj);\r
-        if (val) {\r
-            val->validate(propagate);\r
-        }\r
-    }\r
-};\r
-\r
-void AbstractValidatingXMLObject::validate(bool validateDescendants) const\r
-{\r
-    if (m_validators) {\r
-        for_each(\r
-            m_validators->v.begin(),m_validators->v.end(),\r
-            bind2nd(mem_fun<void,Validator,const XMLObject*>(&Validator::validate),this)\r
-            );\r
-    }\r
-    \r
-    if (validateDescendants && hasChildren()) {\r
-        const list<XMLObject*>& children=getOrderedChildren();\r
-        for_each(children.begin(),children.end(),bind2nd(_validate(),validateDescendants));\r
-    }\r
-}\r