summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/remotesdk/RemoteInterpreterException.java
blob: 0a31e6578cce21a4a4fc956e9b2ca35b6dbc363e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.intellij.remotesdk;

import com.intellij.execution.ExecutionException;

import java.net.NoRouteToHostException;

/**
 * @author traff
 */
public class RemoteInterpreterException extends ExecutionException {
  private final boolean myNoRouteToHost;
  private final boolean myAuthFailed;

  public RemoteInterpreterException(String s, Throwable throwable) {
    super(s, throwable);
    myNoRouteToHost = throwable instanceof NoRouteToHostException;
    myAuthFailed = false;
  }

  public RemoteInterpreterException(String s) {
    super(s);
    myAuthFailed = false;
    myNoRouteToHost = false;
  }

  public boolean isNoRouteToHost() {
    return myNoRouteToHost;
  }

  public boolean isAuthFailed() {
    return myAuthFailed;
  }

  public String getMessage() {
    if (myNoRouteToHost) {
      return getCause().getMessage();
    }
    else if (myAuthFailed) {
      return "Authentication failed";
    }
    else {
      return super.getMessage();
    }
  }

  public static RemoteInterpreterException cantObtainRemoteCredentials(Throwable e) {
    return new RemoteInterpreterException("Cant obtain remote credentials", e);
  }
}