summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/BaseExternalTool.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/diff/impl/external/BaseExternalTool.java')
-rw-r--r--platform/platform-impl/src/com/intellij/openapi/diff/impl/external/BaseExternalTool.java26
1 files changed, 16 insertions, 10 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/BaseExternalTool.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/BaseExternalTool.java
index 9ae17ec50df0..d4fbf23aa6c4 100644
--- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/BaseExternalTool.java
+++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/BaseExternalTool.java
@@ -46,7 +46,7 @@ abstract class BaseExternalTool implements DiffTool {
myToolProperty = toolProperty;
}
- public final boolean canShow(DiffRequest request) {
+ public final boolean canShow(@NotNull DiffRequest request) {
if (!isEnabled() || StringUtil.isEmpty(getToolPath())) return false;
return isAvailable(request);
}
@@ -56,10 +56,10 @@ abstract class BaseExternalTool implements DiffTool {
return null;
}
- public abstract boolean isAvailable(DiffRequest request);
+ public abstract boolean isAvailable(@NotNull DiffRequest request);
@Nullable
- protected ContentExternalizer externalize(final DiffRequest request, final int index) {
+ protected ContentExternalizer externalize(@NotNull DiffRequest request, final int index) {
final VirtualFile file = getLocalFile(request.getContents()[index].getFile());
if (LocalFileExternalizer.canExternalizeAsFile(file)) {
@@ -81,7 +81,8 @@ abstract class BaseExternalTool implements DiffTool {
return myEnableProperty.value(getProperties());
}
- protected List<String> getParameters(DiffRequest request) throws Exception {
+ @NotNull
+ protected List<String> getParameters(@NotNull DiffRequest request) throws Exception {
final String p1 = convertToPath(request, 0);
final String p2 = convertToPath(request, 1);
final List<String> params = new ArrayList<String>();
@@ -91,12 +92,8 @@ abstract class BaseExternalTool implements DiffTool {
}
public void show(DiffRequest request) {
- for (DiffContent diffContent : request.getContents()) {
- Document document = diffContent.getDocument();
- if (document != null) {
- FileDocumentManager.getInstance().saveDocument(document);
- }
- }
+ saveContents(request);
+
GeneralCommandLine commandLine = new GeneralCommandLine();
commandLine.setExePath(getToolPath());
try {
@@ -109,6 +106,15 @@ abstract class BaseExternalTool implements DiffTool {
}
}
+ protected void saveContents(DiffRequest request) {
+ for (DiffContent diffContent : request.getContents()) {
+ Document document = diffContent.getDocument();
+ if (document != null) {
+ FileDocumentManager.getInstance().saveDocument(document);
+ }
+ }
+ }
+
@Nullable
protected String convertToPath(DiffRequest request, int index) throws Exception {
final ContentExternalizer externalize = externalize(request, index);