WEB-13145 "Single instance only" not respected
[idea/community.git] / platform / lang-impl / testSources / com / intellij / execution / impl / FakeProcessHandler.java
1 /*
2  * Copyright 2000-2016 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.execution.impl;
17
18 import com.intellij.execution.KillableProcess;
19 import com.intellij.execution.process.ProcessHandler;
20 import org.jetbrains.annotations.Nullable;
21
22 import java.io.OutputStream;
23
24 public class FakeProcessHandler extends ProcessHandler implements KillableProcess {
25
26   private final boolean mySurviveSoftKill;
27
28   public FakeProcessHandler(boolean surviveSoftKill) {
29     mySurviveSoftKill = surviveSoftKill;
30   }
31
32   @Override
33   protected void destroyProcessImpl() {
34     if (!mySurviveSoftKill) {
35       notifyProcessTerminated(0);
36     }
37   }
38
39   @Override
40   protected void detachProcessImpl() {
41     notifyProcessTerminated(0);
42   }
43
44   @Override
45   public boolean detachIsDefault() {
46     return false;
47   }
48
49   @Nullable
50   @Override
51   public OutputStream getProcessInput() {
52     return null;
53   }
54
55   @Override
56   public boolean canKillProcess() {
57     return true;
58   }
59
60   @Override
61   public void killProcess() {
62     notifyProcessTerminated(0);
63   }
64 }