Go to the documentation of this file.
29 m_nodes.insert( m_nodes.end(), nodes.
begin(), nodes.
end() );
91 const Or* _or =
dynamic_cast<const Or*
>( right );
92 if ( 0 != _or ) {
return add( _or->
m_nodes ); }
94 const Node* _no =
dynamic_cast<const Node*
>( right );
95 if ( 0 != _no ) {
return add( _no->
node() ); }
97 m_nodes.push_back( node );
98 return m_nodes.size();
102 for (
const auto&
n : nodes )
add(
n );
103 return m_nodes.size();
109 return m_nodes.end() !=
std::find_if( m_nodes.begin(), m_nodes.end(),
116 if ( m_nodes.begin() != node ) {
s <<
"|"; }
153 const And* _and =
dynamic_cast<const And*
>( right );
154 if ( 0 != _and ) {
return add( _and->
m_nodes ); }
156 const Node* _no =
dynamic_cast<const Node*
>( right );
157 if ( 0 != _no ) {
return add( _no->
node() ); }
159 m_nodes.push_back( node );
160 return m_nodes.size();
164 for (
const auto&
n : nodes )
add(
n );
165 return m_nodes.size();
171 if ( m_nodes.empty() ) {
return false; }
194 return m_node.validate( svc );
Not * clone() const override
MANDATORY: clone method ("virtual constructor")
void push_back(Container &c, const Value &v, std::true_type)
Or()
the default constructor is disabled
bool operator()(const Gaudi::ParticleID &) const override
MANDATORY: the only one essential method.
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
Nodes_::const_iterator const_iterator
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
_Node & op_or(const NodeList &right)
Not(const Decays::iNode &node)
constructor from the node
bool valid() const override
MANDATORY: check the validity.
NodeList m_nodes
the sub-nodes
_Node & op_and(const NodeList &right)
bool operator()(const Gaudi::ParticleID &pid) const override
MANDATORY: the only one essential method.
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
Or & operator+=(const Decays::iNode &node)
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
And & operator+=(const Decays::iNode &node)
size_t add(const Decays::iNode &node)
And * clone() const override
MANDATORY: clone method ("virtual constructor")
NodeList & operator=(const Decays::Nodes::_Node &node)
Decays::NodeList m_nodes
the sub-nodes
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.
StatusCode validate(const Gaudi::Interfaces::IParticlePropertySvc *svc) const override
MANDATORY: the proper validation of the node.
StatusCode validate(Iterator begin, Iterator end, const Gaudi::Interfaces::IParticlePropertySvc *svc)
validate trees/nodes
And(const Decays::iNode &n1, const Decays::iNode &n2)
constructor from two nodes
const iNode & node() const
Or * clone() const override
MANDATORY: clone method ("virtual constructor")
size_t add(const Decays::iNode &node)
bool valid(Iterator begin, Iterator end)
check the validness of the trees or nodes
bool operator()(const Gaudi::ParticleID &p) const override
MANDATORY: the only one essential method.
Invalid * clone() const override
MANDATORY: clone method ("virtual constructor")
NodeList(const Nodes_ &nodes=Nodes_())
constructor from the list of Nodes
bool valid() const override
MANDATORY: check the validity.
Nodes_ m_nodes
the actual list of nodes
bool valid() const override
MANDATORY: check the validity.
bool valid() const override
MANDATORY: check the validity.
_Node()
the default constructor
constexpr static const auto FAILURE
void push_back(const Decays::Nodes::_Node &node)
Stream & ostream_joiner(Stream &os, Iterator first, Iterator last, Separator sep, OutputElement output=OutputElement{})
std::ostream & fillStream(std::ostream &s) const override
MANDATORY: the specific printout.