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 }