@Override
  public boolean applyCheckingPreAndPosCondictions(Resolution resolution)
      throws RefactoringException {
    Translate translate = Translate.getTranslate();
    CreateFactoryMethodResolution cfmResolution = (CreateFactoryMethodResolution) resolution;
    factorer.setMethodName(cfmResolution.getMethodName());
    factorer.setOptimizeVisibility(cfmResolution.getOptimizeVisibility());
    refactoring = factorer;

    RefactoringStatus status = checkPreconditions();
    if (status.isErrorOrFatal()) {
      throw new RefactoringException(translate.notRefactored(status.getAllMessages()));
    }
    status.merge(checkUserInput());
    status.merge(factorer.apply());
    if (!status.isOk()) {
      throw new RefactoringException(translate.error(status.getAllMessages()));
    }
    System.out.println(status.getAllMessages());
    return !status.isErrorOrFatal();
  }