code: private boolean moveInnerClassToParent(Outline outline, Candidate candidate) {
  		// Skip basic parametrisations like "List<String>":
  		if (candidate.getFieldParametrisationClass() == null) {
  			return false;
  		}
  
  		JDefinedClass fieldParametrisationImpl = candidate.getFieldParametrisationImpl();
  
  		if (candidate.getClazz() != fieldParametrisationImpl.parentContainer()) {
  			// Field parametrisation class is not inner class of the candidate:
  			return false;
  		}
  
  		JDefinedClass fieldParametrisationClass = candidate.getFieldParametrisationClass();
  
  		String oldFactoryMethodName = fieldParametrisationClass.outer().name() + fieldParametrisationClass.name();
  
  		moveClassLevelUp(outline, fieldParametrisationImpl);
  
  		renameFactoryMethod(fieldParametrisationImpl._package()._getClass(FACTORY_CLASS_NAME), oldFactoryMethodName,
  		            fieldParametrisationClass.name());
  
  		if (candidate.isValueObjectDisabled()) {
  			moveClassLevelUp(outline, fieldParametrisationClass);
  
  			renameFactoryMethod(fieldParametrisationClass._package()._getClass(FACTORY_CLASS_NAME),
  			            oldFactoryMethodName, fieldParametrisationClass.name());
  		}
  
  		return true;
  	}
docs: If candidate class contains the inner class which is collection parametrisation (type), then this inner class has
  to be moved to top class. For example from<br>
  {@code TypeClass (is a collection type) -> ContainerClass (marked for removal) -> ElementClass}<br>
  we need to get<br>
  {@code TypeClass -> ElementClass}.<br>
  Also this move should be reflected on factory method names.