Class DirCacheEditor.PathEdit

  • Direct Known Subclasses:
    DirCacheEditor.DeletePath, DirCacheEditor.DeleteTree
    Enclosing class:
    DirCacheEditor

    public abstract static class DirCacheEditor.PathEdit
    extends Object
    Any index record update.

    Applications should subclass and provide their own implementation for the apply(DirCacheEntry) method. The editor will invoke apply once for each record in the index which matches the path name. If there are multiple records (for example in stages 1, 2 and 3), the edit instance will be called multiple times, once for each stage. If any of these calls resets the stage to 0, only this entry will be taken and entries for other stages are discarded.

    • Constructor Detail

      • PathEdit

        public PathEdit​(String entryPath)
        Create a new update command by path name.
        Parameters:
        entryPath - path of the file within the repository.
      • PathEdit

        public PathEdit​(DirCacheEntry ent)
        Create a new update command for an existing entry instance.
        Parameters:
        ent - entry instance to match path of. Only the path of this entry is actually considered during command evaluation.
    • Method Detail

      • setReplace

        public DirCacheEditor.PathEdit setReplace​(boolean ok)
        Configure if a file can replace a directory (or vice versa).

        Default is true as this is usually the desired behavior.

        Parameters:
        ok - if true a file can replace a directory, or a directory can replace a file.
        Returns:
        this
        Since:
        4.2
      • apply

        public abstract void apply​(DirCacheEntry ent)
        Apply the update to a single cache entry matching the path.

        After apply is invoked the entry is added to the output table, and will be included in the new index.

        Parameters:
        ent - the entry being processed. All fields are zeroed out if the path is a new path in the index.