public boolean includeFile()

in plugins/actions/copyfiles/src/main/java/org/apache/hop/workflow/actions/copyfiles/ActionCopyFiles.java [816:1050]


    public boolean includeFile(FileSelectInfo info) {
      boolean returncode = false;
      FileObject filename = null;
      String addFileNameString = null;
      try {

        if (!info.getFile().toString().equals(sourceFolder) && !parentjob.isStopped()) {
          // Pass over the Base folder itself

          String shortFilename = info.getFile().getName().getBaseName();
          // Built destination filename
          if (destinationFolderObject == null) {
            // Resolve the destination folder
            destinationFolderObject = HopVfs.getFileObject(destinationFolder, getVariables());
          }

          String fullName = info.getFile().toString();
          String baseFolder = info.getBaseFolder().toString();
          String path = fullName.substring(fullName.indexOf(baseFolder) + baseFolder.length() + 1);
          filename = destinationFolderObject.resolveFile(path, NameScope.DESCENDENT);

          if (!info.getFile().getParent().equals(info.getBaseFolder())) {

            // Not in the Base Folder..Only if include sub folders
            if (includeSubFolders) {
              // Folders..only if include subfolders
              if (info.getFile().getType() == FileType.FOLDER) {
                if (includeSubFolders && copyEmptyFolders && Utils.isEmpty(fileWildcard)) {
                  if ((filename == null) || (!filename.exists())) {
                    if (isDetailed()) {
                      logDetailed(CONST_DASH);
                      logDetailed(
                          CONST_SPACE_SHORT
                              + BaseMessages.getString(
                                  PKG,
                                  "ActionCopyFiles.Log.FolderCopied",
                                  HopVfs.getFriendlyURI(info.getFile()),
                                  filename != null ? HopVfs.getFriendlyURI(filename) : ""));
                    }
                    returncode = true;
                  } else {
                    if (isDetailed()) {
                      logDetailed(CONST_DASH);
                      logDetailed(
                          CONST_SPACE_SHORT
                              + BaseMessages.getString(
                                  PKG,
                                  "ActionCopyFiles.Log.FolderExists",
                                  HopVfs.getFriendlyURI(filename)));
                    }
                    if (overwriteFiles) {
                      if (isDetailed()) {
                        logDetailed(
                            CONST_SPACE_SHORT
                                + BaseMessages.getString(
                                    PKG,
                                    "ActionCopyFiles.Log.FolderOverwrite",
                                    HopVfs.getFriendlyURI(info.getFile()),
                                    HopVfs.getFriendlyURI(filename)));
                      }
                      returncode = true;
                    }
                  }
                }

              } else {
                if (getFileWildcard(shortFilename)) {
                  // Check if the file exists
                  if ((filename == null) || (!filename.exists())) {
                    if (isDetailed()) {
                      logDetailed(CONST_DASH);
                      logDetailed(
                          CONST_SPACE_SHORT
                              + BaseMessages.getString(
                                  PKG,
                                  CONST_FILE_COPIED,
                                  HopVfs.getFriendlyURI(info.getFile()),
                                  filename != null ? HopVfs.getFriendlyURI(filename) : ""));
                    }
                    returncode = true;
                  } else {
                    if (isDetailed()) {
                      logDetailed(CONST_DASH);
                      logDetailed(
                          CONST_SPACE_SHORT
                              + BaseMessages.getString(
                                  PKG, CONST_FILE_EXISTS, HopVfs.getFriendlyURI(filename)));
                    }
                    if (overwriteFiles) {
                      if (isDetailed()) {
                        logDetailed(
                            "       "
                                + BaseMessages.getString(
                                    PKG,
                                    CONST_FILE_EXISTS,
                                    HopVfs.getFriendlyURI(info.getFile()),
                                    HopVfs.getFriendlyURI(filename)));
                      }

                      returncode = true;
                    }
                  }
                }
              }
            }
          } else {
            // In the Base Folder...
            // Folders..only if include subfolders
            if (info.getFile().getType() == FileType.FOLDER) {
              if (includeSubFolders && copyEmptyFolders && Utils.isEmpty(fileWildcard)) {
                if ((filename == null) || (!filename.exists())) {
                  if (isDetailed()) {
                    logDetailed("", CONST_DASH);
                    logDetailed(
                        CONST_SPACE_SHORT
                            + BaseMessages.getString(
                                PKG,
                                "ActionCopyFiles.Log.FolderCopied",
                                HopVfs.getFriendlyURI(info.getFile()),
                                filename != null ? HopVfs.getFriendlyURI(filename) : ""));
                  }

                  returncode = true;
                } else {
                  if (isDetailed()) {
                    logDetailed(CONST_DASH);
                    logDetailed(
                        CONST_SPACE_SHORT
                            + BaseMessages.getString(
                                PKG,
                                "ActionCopyFiles.Log.FolderExists",
                                HopVfs.getFriendlyURI(filename)));
                  }
                  if (overwriteFiles) {
                    if (isDetailed()) {
                      logDetailed(
                          CONST_SPACE_SHORT
                              + BaseMessages.getString(
                                  PKG,
                                  "ActionCopyFiles.Log.FolderOverwrite",
                                  HopVfs.getFriendlyURI(info.getFile()),
                                  HopVfs.getFriendlyURI(filename)));
                    }

                    returncode = true;
                  }
                }
              }
            } else {
              // file...Check if exists
              filename =
                  HopVfs.getFileObject(
                      destinationFolder + Const.FILE_SEPARATOR + shortFilename, getVariables());

              if (getFileWildcard(shortFilename)) {
                if ((filename == null) || (!filename.exists())) {
                  if (isDetailed()) {
                    logDetailed(CONST_DASH);
                    logDetailed(
                        CONST_SPACE_SHORT
                            + BaseMessages.getString(
                                PKG,
                                CONST_FILE_COPIED,
                                HopVfs.getFriendlyURI(info.getFile()),
                                filename != null ? HopVfs.getFriendlyURI(filename) : ""));
                  }
                  returncode = true;

                } else {
                  if (isDetailed()) {
                    logDetailed(CONST_DASH);
                    logDetailed(
                        CONST_SPACE_SHORT
                            + BaseMessages.getString(
                                PKG, CONST_FILE_EXISTS, HopVfs.getFriendlyURI(filename)));
                  }

                  if (overwriteFiles) {
                    if (isDetailed()) {
                      logDetailed(
                          CONST_SPACE_SHORT
                              + BaseMessages.getString(PKG, "ActionCopyFiles.Log.FileExistsInfos"),
                          BaseMessages.getString(
                              PKG,
                              CONST_FILE_EXISTS,
                              HopVfs.getFriendlyURI(info.getFile()),
                              HopVfs.getFriendlyURI(filename)));
                    }

                    returncode = true;
                  }
                }
              }
            }
          }
        }
      } catch (Exception e) {

        logError(
            BaseMessages.getString(
                PKG,
                CONST_COPY_PROCESS,
                HopVfs.getFriendlyURI(info.getFile()),
                filename != null ? HopVfs.getFriendlyURI(filename) : null,
                e.getMessage()));

        returncode = false;
      } finally {
        if (filename != null) {
          try {
            if (returncode && addResultFilenames) {
              addFileNameString = filename.toString();
            }
            filename.close();
            filename = null;
          } catch (IOException ex) {
            /* Ignore */
          }
        }
      }
      if (returncode && removeSourceFiles) {
        // add this folder/file to remove files
        // This list will be fetched and all entries files
        // will be removed
        listFilesRemove.add(info.getFile().toString());
      }

      if (returncode && addResultFilenames) {
        // add this folder/file to result files name
        listAddResult.add(
            addFileNameString); // was a NPE before with the file_name=null above in the finally
      }

      return returncode;
    }