1 /* This file is part of the project "Hilbert II" - http://www.qedeq.org" target="alexandria_uri">http://www.qedeq.org
2 *
3 * Copyright 2000-2014, Michael Meyling <mime@qedeq.org>.
4 *
5 * "Hilbert II" is free software; you can redistribute
6 * it and/or modify it under the terms of the GNU General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16 package org.qedeq.kernel.bo.module;
17
18 import org.qedeq.base.io.Parameters;
19 import org.qedeq.kernel.bo.common.ModuleServiceCall;
20 import org.qedeq.kernel.bo.common.ModuleServiceResult;
21 import org.qedeq.kernel.se.common.ServiceCompleteness;
22
23
24 /**
25 * Information for a service call. Occurs during execution of a
26 * {@link org.qedeq.kernel.se.common.ServiceJob}.
27 *
28 * @author Michael Meyling
29 */
30 public interface InternalModuleServiceCall extends ModuleServiceCall {
31
32 /**
33 * Get global config parameters for service call.
34 *
35 * @return Service parameter.
36 */
37 public Parameters getConfigParameters();
38
39 /**
40 * Get call specific parameters for service call.
41 *
42 * @return Service parameter.
43 */
44 public Parameters getParameters();
45
46 /**
47 * Set percentage of currently running plugin execution.
48 *
49 * @param percentage Number between 0 and 100.
50 */
51 public void setExecutionPercentage(double percentage);
52
53 /**
54 * Set someone who answers completeness questions.
55 *
56 * @param completeness An answer for completeness questions. Might be <code>null</code>.
57 */
58 public void setServiceCompleteness(ServiceCompleteness completeness);
59
60 /**
61 * Set description of currently taken action.
62 *
63 * @param action We are doing this currently.
64 */
65 public void setAction(String action);
66
67 /**
68 * Return service process the call was initiated.
69 *
70 * @return Service process for this call.
71 */
72 public InternalServiceJob getInternalServiceProcess();
73
74 /**
75 * Signal an execution pause.
76 */
77 public void pause();
78
79 /**
80 * Signal execution resume.
81 */
82 public void resume();
83
84 /**
85 * Set generic success result for call and stop.
86 * Can only be done if call is still running.
87 */
88 public void finishOk();
89
90 /**
91 * Set generic failure result for call and stop.
92 * Can only be done if call is still running.
93 *
94 * @param errorMessage Reason for finishing with error.
95 */
96 public void finishError(final String errorMessage);
97
98 /**
99 * Set result state for call and stop.
100 * Can only be done if call is still running.
101 *
102 * @param result Service result.
103 */
104 public void finish(ModuleServiceResult result);
105
106 /**
107 * Set result state for call and stop.
108 * Can only be done if call is still running.
109 *
110 * @param result Must include reason for halting.
111 */
112 public void halt(ModuleServiceResult result);
113
114 /**
115 * Set generic failure result for call and stop.
116 * Can only be done if call is still running.
117 *
118 * @param errorMessage Reason for halting.
119 */
120 public void halt(final String errorMessage);
121
122 /**
123 * Set failure state for call and stop.
124 * Can only be done if call is still running.
125 */
126 public void interrupt();
127
128 }