Class Copy

  • All Implemented Interfaces:
    org.nuxeo.connect.update.task.Command
    Direct Known Subclasses:
    Append, ParameterizedCopy

    public class Copy
    extends AbstractCommand
    Copy a file to the given target directory or file. If the target is a directory the file name is preserved. If the target file exists it will be replaced if overwrite is true otherwise the command validation fails. If the source file is a directory, then the files it contents will be recursively copied.

    If md5 is set then the copy command will be validated only if the target file has the same md5 as the one specified in the command.

    The Copy command has as inverse either Delete either another Copy command. If the file was copied without overwriting then Delete is the inverse (with a md5 set to the one of the copied file). If the file was overwritten then the inverse of Copy command is another copy command with the md5 to the one of the copied file and the overwrite flag to true. The file to copy will be the backup of the overwritten file.

    Author:
    Bogdan Stefanescu
    • Field Detail

      • log

        protected static final Log log
      • file

        protected File file
        The source file. It can be a file or a directory.
      • tofile

        protected File tofile
        The target file. It can be a directory since 5.5
      • overwrite

        protected boolean overwrite
      • removeOnExit

        protected boolean removeOnExit
      • append

        protected boolean append
        Since:
        5.5
    • Constructor Detail

      • Copy

        protected Copy​(String id)
      • Copy

        public Copy()
      • Copy

        public Copy​(File file,
                    File tofile,
                    String md5,
                    boolean overwrite)
      • Copy

        public Copy​(File file,
                    File tofile,
                    String md5,
                    boolean overwrite,
                    boolean removeOnExit)
      • Copy

        protected Copy​(String id,
                       File file,
                       File tofile,
                       String md5,
                       boolean overwrite,
                       boolean removeOnExit)
    • Method Detail

      • doRun

        protected org.nuxeo.connect.update.task.Command doRun​(org.nuxeo.connect.update.task.Task task,
                                                              Map<String,​String> prefs)
                                                       throws org.nuxeo.connect.update.PackageException
        Description copied from class: AbstractCommand
        Override to implement command actions
        Specified by:
        doRun in class AbstractCommand
        Returns:
        Rollback command
        Throws:
        org.nuxeo.connect.update.PackageException
      • doCopy

        protected org.nuxeo.connect.update.task.Command doCopy​(org.nuxeo.connect.update.task.Task task,
                                                               Map<String,​String> prefs,
                                                               File fileToCopy,
                                                               File dst,
                                                               boolean doOverwrite)
                                                        throws org.nuxeo.connect.update.PackageException
        Throws:
        org.nuxeo.connect.update.PackageException
        Since:
        5.5
      • getContentToCopy

        protected String getContentToCopy​(File fileToCopy,
                                          Map<String,​String> prefs)
                                   throws org.nuxeo.connect.update.PackageException
        Override in subclass to parameterize content.
        Returns:
        Content to put in destination file. See append parameter to determine if returned content is replacing or appending to destination file.
        Throws:
        org.nuxeo.connect.update.PackageException
        Since:
        5.5
      • getContentToCopy

        @Deprecated
        protected String getContentToCopy​(Map<String,​String> prefs)
                                   throws org.nuxeo.connect.update.PackageException
        Deprecated.
        Since 5.5, use getContentToCopy(File, Map). This method is missing the fileToCopy reference. Using file is leading to errors.
        Throws:
        org.nuxeo.connect.update.PackageException
      • doValidate

        protected void doValidate​(org.nuxeo.connect.update.task.Task task,
                                  org.nuxeo.connect.update.ValidationStatus status)
                           throws org.nuxeo.connect.update.PackageException
        Description copied from class: AbstractCommand
        Override to implement validation.
        Specified by:
        doValidate in class AbstractCommand
        Parameters:
        task - The task being validated
        status - Use ValidationStatus.addError(String) or ValidationStatus.addWarning(String) to provide validation error/warning messages
        Throws:
        org.nuxeo.connect.update.PackageException
      • readFrom

        public void readFrom​(Element element)
                      throws org.nuxeo.connect.update.PackageException
        Description copied from class: AbstractCommand
        Must be implemented to initialize the command arguments from an XML fragment.
        Specified by:
        readFrom in class AbstractCommand
        Throws:
        org.nuxeo.connect.update.PackageException
      • writeTo

        public void writeTo​(org.nuxeo.connect.update.xml.XmlWriter writer)