/**
  * Sets the {@link BranchProjectFactory}.
  *
  * @param projectFactory the new {@link BranchProjectFactory}.
  */
 public synchronized void setProjectFactory(BranchProjectFactory<P, R> projectFactory) {
   projectFactory.getClass(); // throw NPE if null
   if (factory == projectFactory) {
     return;
   }
   if (factory != null) {
     factory.setOwner(null);
   }
   factory = projectFactory;
   factory.setOwner(this);
 }