method iterates over all nodes that provide dependency to the current node,
            and compile composite state of them all
            :return instance of <NodesCompositeState>

def dependent_on_composite_state(self):
        """ method iterates over all nodes that provide dependency to the current node,
            and compile composite state of them all
            :return instance of <NodesCompositeState>
        """
        composite_state = NodesCompositeState()

        for dependent_on in self.tree.dependent_on:
            node_b = self.find_counterpart_in(dependent_on)

            if node_b is None:
                # special case when counterpart tree has no process with corresponding time_qualifier
                # for example Financial Monthly has no counterpart in Third-party Daily Report -
                # so we assume that its not blocked
                continue

            composite_state.enlist(node_b)

        return composite_state