RepeatedCondition Node1 RepeatedCondition - m_multiplicity - m_clique - m_chainPartInd - m_invert + RepeatedCondition() + ~RepeatedCondition() + multiplicitySatisfied() + isSatisfied() + capacity() + multiplicity() + clique() + toString() + label() + isFromChainPart() Node2 IRepeatedCondition + ~IRepeatedCondition() + multiplicitySatisfied() + label() + multiplicity() + clique() + toString() + isFromChainPart() Node2->Node1 Node3 ICondition + ~ICondition() + isSatisfied() + capacity() + toString() Node3->Node2 Node4 std::unique_ptr< ICondition > + operator->() Node3->Node4 +ptr Node4->Node1 -m_condition