code: private void generateOrderedDepGraph() {
  		TopologicalOrderIterator<Predicate, DefaultEdge> iter =
  				new TopologicalOrderIterator<Predicate, DefaultEdge>(predicateDependencyGraph);
  		
  		while (iter.hasNext()){
  			Predicate pred = iter.next();
  			predicatesInBottomUp.add(pred);
  		}
  		Collections.reverse(predicatesInBottomUp);
  	}
docs: This method will
  <ul>
  <li>Order the {@link #predicateDependencyGraph} using a top down approach</li>
  <li>Then reverse the list and add them into the field {@link #predicatesInBottomUp} </li>
  </ul>