1 package org.qedeq.kernel.bo.module;
2
3 import org.qedeq.kernel.bo.common.Element2Latex;
4 import org.qedeq.kernel.bo.common.Element2Utf8;
5 import org.qedeq.kernel.bo.common.QedeqBo;
6 import org.qedeq.kernel.se.common.ModuleDataException;
7 import org.qedeq.kernel.se.common.ModuleService;
8 import org.qedeq.kernel.se.common.Service;
9 import org.qedeq.kernel.se.common.SourceFileException;
10 import org.qedeq.kernel.se.common.SourceFileExceptionList;
11 import org.qedeq.kernel.se.state.DependencyState;
12 import org.qedeq.kernel.se.state.FormallyProvedState;
13 import org.qedeq.kernel.se.state.LoadingImportsState;
14 import org.qedeq.kernel.se.state.WellFormedState;
15
16 /**
17 * Kernel internal QedeqBo with additional methods.
18 *
19 * @author Michael Meyling
20 */
21 public interface KernelQedeqBo extends QedeqBo {
22
23 /**
24 * Get internal kernel services.
25 *
26 * @return Internal kernel services.
27 */
28 public InternalKernelServices getKernelServices();
29
30 /**
31 * Get labels and URLs of all referenced modules.
32 *
33 * @return URLs of all referenced modules.
34 */
35 public KernelModuleReferenceList getKernelRequiredModules();
36
37 /**
38 * Get label references for QEDEQ module.
39 *
40 * @return Label references.
41 */
42 public ModuleLabels getLabels();
43
44 /**
45 * Return mapper for transforming elements into LaTeX.
46 *
47 * @return Transformer to get LaTeX out of elements.
48 */
49 public Element2Latex getElement2Latex();
50
51 /**
52 * Return mapper for transforming elements into UTF-8 text.
53 *
54 * @return Transformer to get UTF-8 text out of elements.
55 */
56 public Element2Utf8 getElement2Utf8();
57
58 /**
59 * Create exception out of {@link ModuleDataException}.
60 *
61 * @param service This service generated the error.
62 * @param exception Take this exception.
63 * @return Newly created instance.
64 */
65 public SourceFileException createSourceFileException(Service service, ModuleDataException
66 exception);
67
68 /**
69 * Add errors and warnings for service.
70 *
71 * @param plugin Add errors for this service.
72 * @param errors These errors occurred.
73 * @param warnings These warnings occurred.
74 */
75 public void addPluginErrorsAndWarnings(ModuleService plugin, SourceFileExceptionList errors,
76 SourceFileExceptionList warnings);
77
78 /**
79 * Remove all errors and warnings for all services.
80 */
81 public void clearAllPluginErrorsAndWarnings();
82
83 /**
84 * Get the predicate and function existence checker. Is only not <code>null</code>
85 * if logic was successfully checked.
86 *
87 * @return Checker. Checks if a predicate or function constant is defined.
88 */
89 public ModuleConstantsExistenceChecker getExistenceChecker();
90
91 /**
92 * Set failure module state.
93 *
94 * @param loadImportsFailed Module state.
95 * @param sfl Exception that occurred during loading required modules.
96 * @throws IllegalArgumentException <code>state</code> is no failure state
97 */
98 public void setLoadingImportsFailureState(LoadingImportsState loadImportsFailed,
99 SourceFileExceptionList sfl);
100
101 /**
102 * Set logical well formed module state. Must not be <code>null</code>.
103 *
104 * @param stateLoadImports module state
105 */
106 public void setLoadingImportsProgressState(LoadingImportsState stateLoadImports);
107
108 /**
109 * Set loaded imports state. All directly required modules were loaded.
110 *
111 * @param imports These imports were loaded.
112 * @throws IllegalStateException Module is not yet loaded.
113 */
114 public void setLoadedImports(final KernelModuleReferenceList imports);
115
116 /**
117 * Set dependency failure module state.
118 *
119 * @param loadRequiredFailed Module state.
120 * @param sfl Exception that occurred during loading required modules.
121 * @throws IllegalArgumentException <code>loadRequiredFailed</code> is no failure state
122 * @throws IllegalStateException Module is not yet loaded.
123 * @throws NullPointerException <code>loadRequiredFailed</code> is <code>null</code>.
124 */
125 public void setDependencyFailureState(DependencyState loadRequiredFailed,
126 SourceFileExceptionList sfl);
127
128 /**
129 * Set dependency module state. Must not be <code>null</code>.
130 *
131 * @param state Module state
132 * @throws IllegalStateException Module is not yet loaded.
133 * @throws IllegalArgumentException <code>state</code> is failure state or loaded required
134 * state.
135 * @throws NullPointerException <code>state</code> is <code>null</code>.
136 */
137 public void setDependencyProgressState(DependencyState state);
138
139 /**
140 * Set loaded required requirements state.
141 *
142 * @throws IllegalStateException Module is not yet loaded.
143 */
144 public void setLoadedRequiredModules();
145
146 /**
147 * Set failure module state.
148 *
149 * @param stateExternalCheckingFailed Module state.
150 * @param sfl Exception that occurred during loading.
151 * @throws IllegalArgumentException <code>state</code> is no failure state
152 */
153 public void setWellfFormedFailureState(WellFormedState stateExternalCheckingFailed,
154 SourceFileExceptionList sfl);
155
156 /**
157 * Set logical well formed module state. Must not be <code>null</code>.
158 *
159 * @param stateInternalChecking module state
160 */
161 public void setWellFormedProgressState(WellFormedState stateInternalChecking);
162
163 /**
164 * Set logical formally proved module progress state. Must not be <code>null</code>.
165 *
166 * @param state module state
167 * @throws IllegalArgumentException <code>state</code> is no failure state
168 */
169 public void setFormallyProvedProgressState(FormallyProvedState state);
170
171 /**
172 * Set logical formally proved module failure state. Must not be <code>null</code>.
173 *
174 * @param state module state
175 * @param sfl Exception that occurred during loading.
176 * @throws IllegalArgumentException <code>state</code> is no failure state
177 */
178 public void setFormallyProvedFailureState(FormallyProvedState state,
179 SourceFileExceptionList sfl);
180
181 /**
182 * Set {@link ModuleConstantsExistenceChecker}. Doesn't do any status handling.
183 *
184 * @param existence Set this checker.
185 */
186 public void setExistenceChecker(ModuleConstantsExistenceChecker existence);
187
188 /**
189 * Set logic well formed state. Also set the predicate and function existence checker.
190 *
191 * @param checker Checks if a predicate or function constant is defined.
192 */
193 public void setWellFormed(ModuleConstantsExistenceChecker checker);
194
195
196 /**
197 * Set currently running service.
198 *
199 * @param service Set currently running service. Might be <code>null</code>.
200 */
201 // TODO 20130520 m31: we must decide about the location of the service at this module
202 // public void setCurrentlyRunningService(Service service);
203
204 }