00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision$ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #include "mitkNodePredicateNot.h" 00019 00020 00021 mitk::NodePredicateNot::NodePredicateNot(const mitk::NodePredicateBase* p) 00022 { 00023 m_ChildPredicates.push_back(p); 00024 } 00025 00026 mitk::NodePredicateNot::~NodePredicateNot() 00027 { 00028 } 00029 00030 bool mitk::NodePredicateNot::CheckNode(const mitk::DataNode* node) const 00031 { 00032 if (node == NULL) 00033 throw std::invalid_argument("NodePredicateNot: invalid node"); 00034 00035 00036 // return the negation of the child predicate 00037 return !m_ChildPredicates.front()->CheckNode(node); 00038 } 00039 00040 void mitk::NodePredicateNot::AddPredicate( const mitk::NodePredicateBase* p ) 00041 { 00042 if(!m_ChildPredicates.empty()) 00043 m_ChildPredicates.clear(); 00044 00045 NodePredicateCompositeBase::AddPredicate(p); 00046 }