KernelQedeqBo.java
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 }