package com.beijunyi.parallelgit.utils.io; import javax.annotation.Nonnull; import javax.annotation.Nullable; import com.beijunyi.parallelgit.utils.TreeUtils; import org.eclipse.jgit.dircache.DirCacheEditor; import org.eclipse.jgit.dircache.DirCacheEntry; import org.eclipse.jgit.lib.FileMode; import org.eclipse.jgit.lib.ObjectId; public class CacheEntryUpdate extends DirCacheEditor.PathEdit { private ObjectId newBlob; private FileMode newFileMode; public CacheEntryUpdate(String entryPath) { super(TreeUtils.normalizeNodePath(entryPath)); } @Nonnull public CacheEntryUpdate setNewBlob(@Nullable ObjectId blob) { this.newBlob = blob; return this; } @Nonnull public CacheEntryUpdate setNewFileMode(@Nullable FileMode fileMode) { this.newFileMode = fileMode; return this; } @Override public void apply(DirCacheEntry ent) { if(newBlob != null) ent.setObjectId(newBlob); if(newFileMode != null) ent.setFileMode(newFileMode); } }