public void setAutoBases(@NotNull final Collection<VirtualFile> autoBases) { final String path = myPatch.getBeforeName() == null ? myPatch.getAfterName() : myPatch.getBeforeName(); for (VirtualFile autoBase : autoBases) { final VirtualFile willBeBase = PathMerger.getBase(autoBase, path); if (willBeBase != null) { myAutoBases.add(willBeBase); } } }
private static FilePatchStatus getStatus(final TextFilePatch patch) { final String beforeName = patch.getBeforeName().replace("\\", "/"); final String afterName = patch.getAfterName().replace("\\", "/"); if (patch.isNewFile() || (beforeName == null)) { return FilePatchStatus.ADDED; } else if (patch.isDeletedFile() || (afterName == null)) { return FilePatchStatus.DELETED; } if (beforeName.equals(afterName)) return FilePatchStatus.MODIFIED; return FilePatchStatus.MOVED_OR_RENAMED; }
public void setNewBase(final VirtualFile base) { myBase = base; myNewContentRevision = null; myCurrentRevision = null; myAfterFile = null; myConflicts = null; final String beforeName = myPatch.getBeforeName(); if (beforeName != null) { myIoCurrentBase = PathMerger.getFile(new File(myBase.getPath()), beforeName); myCurrentBase = myIoCurrentBase == null ? null : VcsUtil.getVirtualFileWithRefresh(myIoCurrentBase); myBaseExists = (myCurrentBase != null) && myCurrentBase.exists(); } else { // creation final String afterName = myPatch.getAfterName(); myBaseExists = true; myIoCurrentBase = PathMerger.getFile(new File(myBase.getPath()), afterName); myCurrentBase = VcsUtil.getVirtualFileWithRefresh(myIoCurrentBase); } }
public ContentRevision getNewContentRevision() { if (FilePatchStatus.DELETED.equals(myStatus)) return null; if (myNewContentRevision == null) { myConflicts = null; if (FilePatchStatus.ADDED.equals(myStatus)) { final FilePath newFilePath = FilePathImpl.createNonLocal(myIoCurrentBase.getAbsolutePath(), false); final String content = myPatch.getNewFileText(); myNewContentRevision = new SimpleContentRevision(content, newFilePath, myPatch.getAfterVersionId()); } else { final FilePath newFilePath; if (FilePatchStatus.MOVED_OR_RENAMED.equals(myStatus)) { newFilePath = new FilePathImpl( PathMerger.getFile(new File(myBase.getPath()), myPatch.getAfterName()), false); } else { newFilePath = (myCurrentBase != null) ? new FilePathImpl(myCurrentBase) : new FilePathImpl(myIoCurrentBase, false); } myNewContentRevision = new LazyPatchContentRevision( myCurrentBase, newFilePath, myPatch.getAfterVersionId(), myPatch); if (myCurrentBase != null) { ApplicationManager.getApplication() .executeOnPooledThread( new Runnable() { public void run() { ((LazyPatchContentRevision) myNewContentRevision).getContent(); } }); } } } return myNewContentRevision; }
public Couple<String> getKey() { return Couple.newOne(myPatch.getBeforeName(), myPatch.getAfterName()); }