Clover Coverage Report
Coverage timestamp: Fri Feb 14 2014 07:28:57 UTC
0   192   0   -
0   30   -   0
0     -  
1    
 
  KernelServices       Line # 31 0 0 - -1.0
 
No Tests
 
1    /* This file is part of the project "Hilbert II" - 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.common;
17   
18    import java.io.File;
19    import java.io.IOException;
20    import java.net.URL;
21   
22    import org.qedeq.kernel.se.common.ModuleAddress;
23    import org.qedeq.kernel.se.common.ModuleService;
24    import org.qedeq.kernel.se.visitor.InterruptException;
25   
26    /**
27    * The main QEDEQ kernel methods are assembled here.
28    *
29    * @author Michael Meyling
30    */
 
31    public interface KernelServices {
32   
33    /**
34    * Remove all modules from memory.
35    *
36    * @return Was removal successful?
37    */
38    public boolean removeAllModules();
39   
40    /**
41    * Clear local buffer and all loaded QEDEQ modules.
42    *
43    * @return Was deletion successful?
44    */
45    public boolean clearLocalBuffer();
46   
47    /**
48    * Get a certain module. You can check the status to know if the loading was successful.
49    *
50    * @param address Address of module.
51    * @return Wanted module.
52    */
53    public QedeqBo loadModule(ModuleAddress address);
54   
55    /**
56    * Get required modules of given module. You can check the status to know if the loading was
57    * successful.
58    *
59    * @param address Address of module.
60    * @return Successful loading.
61    */
62    public boolean loadRequiredModules(ModuleAddress address);
63   
64    /**
65    * Load all QEDEQ modules from project web directory for current kernel.
66    *
67    * @return Successful loading.
68    */
69    public boolean loadAllModulesFromQedeq();
70   
71    /**
72    * Remove a QEDEQ module from memory.
73    *
74    * @param address Remove module identified by this address.
75    */
76    public void removeModule(ModuleAddress address);
77   
78    /**
79    * Get list of all currently loaded QEDEQ modules.
80    *
81    * @return All currently loaded QEDEQ modules.
82    */
83    public ModuleAddress[] getAllLoadedModules();
84   
85    /**
86    * Get {@link QedeqBo} for an address.
87    *
88    * @param address Look for this address.
89    * @return Existing or new {@link QedeqBo}.
90    */
91    public QedeqBo getQedeqBo(ModuleAddress address);
92   
93    /**
94    * Get source of an QEDEQ module.
95    * If the module was not yet not buffered <code>null</code> is returned.
96    *
97    * @param address Address for QEDEQ module address.
98    * @return Contents of locally buffered QEDEQ module.
99    * @throws IOException Loading failed.
100    */
101    public String getSource(ModuleAddress address) throws IOException;
102   
103    /**
104    * Get module address from URL.
105    *
106    * @param url URL for QEDEQ module.
107    * @return Module address.
108    * @throws IOException URL has not the correct format for referencing a QEDEQ module.
109    */
110    public ModuleAddress getModuleAddress(URL url) throws IOException;
111   
112    /**
113    * Get module address from URL.
114    *
115    * @param url URL for QEDEQ module.
116    * @return Module address.
117    * @throws IOException URL has not the correct format for referencing a QEDEQ module.
118    */
119    public ModuleAddress getModuleAddress(String url) throws IOException;
120   
121    /**
122    * Get module address from URL.
123    *
124    * @param file Local QEDEQ module.
125    * @return Module address.
126    * @throws IOException URL has not the correct format for referencing a QEDEQ module.
127    */
128    public ModuleAddress getModuleAddress(File file) throws IOException;
129   
130    /**
131    * Check if all formulas of a QEDEQ module and its required modules are well formed.
132    *
133    * @param address Module to check.
134    * @return Was check successful?
135    */
136    public boolean checkWellFormedness(ModuleAddress address);
137   
138    /**
139    * Check if all propositions of this and all required modules have correct formal proofs.
140    *
141    * @param address Module to check.
142    * @return Was check successful?
143    */
144    public boolean checkFormallyProved(ModuleAddress address);
145   
146    /**
147    * Get all installed plugins.
148    *
149    * @return Installed plugins.
150    */
151    public ModuleService[] getPlugins();
152   
153    /**
154    * Execute plugin on given QEDEQ module.
155    *
156    * @param id Plugin id.
157    * @param address QEDEQ module address.
158    * @param data Process data. Additional data beside module.
159    * @throws InterruptException User canceled further processing.
160    * @return Plugin specific resulting object. Might be <code>null</code>.
161    */
162    public Object executePlugin(final String id, final ModuleAddress address, final Object data)
163    throws InterruptException;
164   
165    /**
166    * Clear all plugin warnings and errors for given module.
167    *
168    * @param address QEDEQ module address.
169    */
170    public void clearAllPluginResults(final ModuleAddress address);
171   
172    /**
173    * Get information about all service processes.
174    *
175    * @return Result.
176    */
177    public ServiceJob[] getServiceProcesses();
178   
179    /**
180    * Get all running service processes. But remember a running process might currently
181    * be blocked.
182    *
183    * @return All service running processes.
184    */
185    public ServiceJob[] getRunningServiceProcesses();
186   
187    /**
188    * Stop all currently running service executions.
189    */
190    public void terminateAllServiceProcesses();
191   
192    }