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 00019 #ifndef MITKNODEPREDICATENOT_H_HEADER_INCLUDED_ 00020 #define MITKNODEPREDICATENOT_H_HEADER_INCLUDED_ 00021 00022 #include "mitkNodePredicateCompositeBase.h" 00023 00024 namespace mitk { 00025 00026 //##Documentation 00027 //## @brief Composite predicate that negates its child predicate 00028 //## Changed: NodePredicateNot now derives from NodePredicateCompositeBase though it really holds 00029 //## only one subpredicate at any time. But logically any Predicate that has one or more subpredicate 00030 //## is a CompositePredicate. 00031 //## 00032 //## @ingroup DataStorage 00033 class MITK_CORE_EXPORT NodePredicateNot : public mitk::NodePredicateCompositeBase 00034 { 00035 public: 00036 mitkClassMacro(NodePredicateNot, NodePredicateCompositeBase); 00037 mitkNewMacro1Param(NodePredicateNot, const mitk::NodePredicateBase*); 00038 00039 //##Documentation 00040 //## @brief Standard Destructor 00041 virtual ~NodePredicateNot(); 00042 00043 //##Documentation 00044 //## @brief Reimplemented, only one child predicate is allowed for the NOT predicate. 00045 virtual void AddPredicate(const mitk::NodePredicateBase* p); 00046 00047 //##Documentation 00048 //## @brief Checks, if the node does not fulfill the child predicate condition 00049 virtual bool CheckNode(const mitk::DataNode* node) const; 00050 protected: 00051 //##Documentation 00052 //## @brief Constructor 00053 NodePredicateNot(const mitk::NodePredicateBase* p); 00054 00055 }; 00056 00057 } // namespace mitk 00058 00059 #endif /* MITKNODEPREDICATENOT_H_HEADER_INCLUDED_ */