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 MITKNODEPREDICATEAND_H_HEADER_INCLUDED_ 00020 #define MITKNODEPREDICATEAND_H_HEADER_INCLUDED_ 00021 00022 #include "mitkNodePredicateCompositeBase.h" 00023 00024 namespace mitk { 00025 00026 //##Documentation 00027 //## @brief Composite predicate that forms a logical AND relation from its child predicates 00028 //## 00029 //## 00030 //## 00031 //## 00032 //## @ingroup DataStorage 00033 class MITK_CORE_EXPORT NodePredicateAnd : public NodePredicateCompositeBase 00034 { 00035 public: 00036 mitkClassMacro(NodePredicateAnd, NodePredicateCompositeBase); 00037 00038 itkFactorylessNewMacro(NodePredicateAnd); 00039 mitkNewMacro2Param(NodePredicateAnd, const NodePredicateBase*, const NodePredicateBase*); 00040 mitkNewMacro3Param(NodePredicateAnd, const NodePredicateBase*, const NodePredicateBase*, const NodePredicateBase*); 00041 00042 //##Documentation 00043 //## @brief Standard Destructor 00044 virtual ~NodePredicateAnd(); 00045 00046 //##Documentation 00047 //## @brief Checks, if the node fulfills all of the subpredicates conditions 00048 virtual bool CheckNode(const DataNode* node) const; 00049 protected: 00050 //##Documentation 00051 //## @brief Protected constructor, use static instantiation functions instead 00052 NodePredicateAnd(); 00053 00054 //##Documentation 00055 //## @brief Convenience constructor that adds p1 and p2 to list of child predicates 00056 //## Protected constructor, use static instantiation functions instead 00057 NodePredicateAnd(const NodePredicateBase* p1, const NodePredicateBase* p2); 00058 00059 //##Documentation 00060 //## @brief Convenience constructor that adds p1, p2 and p3 to list of child predicates 00061 //## Protected constructor, use static instantiation functions instead 00062 NodePredicateAnd(const NodePredicateBase* p1, const NodePredicateBase* p2, const NodePredicateBase* p3); 00063 }; 00064 00065 } // namespace mitk 00066 00067 #endif /* MITKNODEPREDICATEAND_H_HEADER_INCLUDED_ */ 00068