001 package org.qedeq.kernel.bo.module;
002
003 import org.qedeq.kernel.bo.common.Element2Latex;
004 import org.qedeq.kernel.bo.common.Element2Utf8;
005 import org.qedeq.kernel.bo.common.QedeqBo;
006 import org.qedeq.kernel.se.common.ModuleDataException;
007 import org.qedeq.kernel.se.common.ModuleService;
008 import org.qedeq.kernel.se.common.Service;
009 import org.qedeq.kernel.se.common.SourceFileException;
010 import org.qedeq.kernel.se.common.SourceFileExceptionList;
011 import org.qedeq.kernel.se.state.DependencyState;
012 import org.qedeq.kernel.se.state.FormallyProvedState;
013 import org.qedeq.kernel.se.state.LoadingImportsState;
014 import org.qedeq.kernel.se.state.WellFormedState;
015
016 /**
017 * Kernel internal QedeqBo with additional methods.
018 *
019 * @author Michael Meyling
020 */
021 public interface KernelQedeqBo extends QedeqBo {
022
023 /**
024 * Get internal kernel services.
025 *
026 * @return Internal kernel services.
027 */
028 public InternalKernelServices getKernelServices();
029
030 /**
031 * Get labels and URLs of all referenced modules.
032 *
033 * @return URLs of all referenced modules.
034 */
035 public KernelModuleReferenceList getKernelRequiredModules();
036
037 /**
038 * Get label references for QEDEQ module.
039 *
040 * @return Label references.
041 */
042 public ModuleLabels getLabels();
043
044 /**
045 * Return mapper for transforming elements into LaTeX.
046 *
047 * @return Transformer to get LaTeX out of elements.
048 */
049 public Element2Latex getElement2Latex();
050
051 /**
052 * Return mapper for transforming elements into UTF-8 text.
053 *
054 * @return Transformer to get UTF-8 text out of elements.
055 */
056 public Element2Utf8 getElement2Utf8();
057
058 /**
059 * Create exception out of {@link ModuleDataException}.
060 *
061 * @param service This service generated the error.
062 * @param exception Take this exception.
063 * @return Newly created instance.
064 */
065 public SourceFileException createSourceFileException(Service service, ModuleDataException
066 exception);
067
068 /**
069 * Add errors and warnings for service.
070 *
071 * @param plugin Add errors for this service.
072 * @param errors These errors occurred.
073 * @param warnings These warnings occurred.
074 */
075 public void addPluginErrorsAndWarnings(ModuleService plugin, SourceFileExceptionList errors,
076 SourceFileExceptionList warnings);
077
078 /**
079 * Remove all errors and warnings for all services.
080 */
081 public void clearAllPluginErrorsAndWarnings();
082
083 /**
084 * Get the predicate and function existence checker. Is only not <code>null</code>
085 * if logic was successfully checked.
086 *
087 * @return Checker. Checks if a predicate or function constant is defined.
088 */
089 public ModuleConstantsExistenceChecker getExistenceChecker();
090
091 /**
092 * Set failure module state.
093 *
094 * @param loadImportsFailed Module state.
095 * @param sfl Exception that occurred during loading required modules.
096 * @throws IllegalArgumentException <code>state</code> is no failure state
097 */
098 public void setLoadingImportsFailureState(LoadingImportsState loadImportsFailed,
099 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 }
|