code: private int deleteCandidates(Outline outline, Collection<Candidate> candidates) {
  		int deletionCount = 0;
  
  		writeSummary("Deletions:");
  
  		// Visit all candidate classes.
  		for (Candidate candidate : candidates) {
  			if (!candidate.canBeRemoved()) {
  				continue;
  			}
  
  			// Get the defined class for candidate class.
  			JDefinedClass candidateClass = candidate.getClazz();
  
  			deleteClass(outline, candidateClass);
  			deletionCount++;
  
  			for (JDefinedClass objectFactoryClass : candidate.getObjectFactoryClasses()) {
  				deletionCount += deleteFactoryMethod(objectFactoryClass, candidate);
  			}
  
  			// Replay the same for interface:
  			if (candidate.isValueObjectDisabled()) {
  				for (Iterator<JClass> iter = candidateClass._implements(); iter.hasNext();) {
  					JClass interfaceClass = iter.next();
  
  					if (!isHiddenClass(interfaceClass)) {
  						deleteClass(outline, (JDefinedClass) interfaceClass);
  						deletionCount++;
  					}
  				}
  			}
  		}
  
  		return deletionCount;
  	}
docs: Delete all candidate classes together with setter/getter methods and helper methods from
  <code>ObjectFactory</code>.
  
  @return the number of deletions performed