class TransferBDD {

  private void setCommunities(
      Set<CommunityVar> comms, TransferParam<BDDRoute> curP, TransferResult result) {
    Set<Integer> commAPs = atomicPredicatesFor(comms, _communityAtomicPredicates);
    BDD[] commAPBDDs = curP.getData().getCommunityAtomicPredicates();
    for (int ap = 0; ap < commAPBDDs.length; ap++) {
      curP.indent().debug("Value: " + ap);
      BDD comm = commAPBDDs[ap];
      BDD newValue =
          ite(unreachable(result), comm, commAPs.contains(ap) ? factory.one() : factory.zero());
      curP.indent().debug("New Value: " + newValue);
      commAPBDDs[ap] = newValue;
    }
  }

  public  TransferBDD(Graph g, Configuration conf, List<Statement> statements);

}