| Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||||
| IJPEngine |
|
| 1.0;1 |
| 1 | package com.sourceforge.jpatterns.core; |
|
| 2 | ||
| 3 | import com.sourceforge.jpatterns.patterns.IJPattern; |
|
| 4 | import com.sourceforge.jpatterns.patterns.config.IJPConfig; |
|
| 5 | import com.sourceforge.jpatterns.patterns.factory.IJPFactory; |
|
| 6 | ||
| 7 | /** |
|
| 8 | * It is an entry point for all the operations with JPatterns framework from the side of the consumer of this framework. This interface |
|
| 9 | * defines the methods which would be useful for working with the JPattern. Usually only this class would be used. The implementation of |
|
| 10 | * this interface could be customized (study appropriate documentation on the customization). |
|
| 11 | * <br/> |
|
| 12 | * The methods are represented here would return the implementations of the certain patterns: |
|
| 13 | * e.g. <code>IFactory</code>, <code>IChain</code> etc. Also they could return some additional stuff. |
|
| 14 | * <br/> |
|
| 15 | * Please access this functionality using {@link com.sourceforge.jpatterns.core.JPEngineFactory} - it is the only entry point for working |
|
| 16 | * with implementations of <code>IJPEngine</code> interface. |
|
| 17 | * <br/> |
|
| 18 | * All the stuff of the JPatterns configuration would be initialized at the static initialization so just access this class trough the |
|
| 19 | * appropriate factory. |
|
| 20 | * todo [zmicer]: method for the global configuration to be put here. |
|
| 21 | * note [zmicer]: be noticed this interface and the implementation are used for both consumer and framework specific operations. |
|
| 22 | * <p/> |
|
| 23 | * $Author:: zmicer $<br/> |
|
| 24 | * $Rev:: 67 $<br/> * $Date:: 2007-08-28 21:37:07 #$<br/> |
|
| 25 | * $Date:: 2007-08-28 21:37:07 #$<br/> |
|
| 26 | */ |
|
| 27 | public interface IJPEngine |
|
| 28 | { |
|
| 29 | /** |
|
| 30 | * Set the JPatterns engine category type - it could be consumer, framework related etc. It defines the purposes it would be used. |
|
| 31 | * |
|
| 32 | * @param category instance of JPConstants.EngineConfigCaregory, Can not be null (otherwise <code>IllegalArgumentException</code> would appear). |
|
| 33 | */ |
|
| 34 | void init(JPConstants.EngineConfigCaregory category); |
|
| 35 | ||
| 36 | /** |
|
| 37 | * @return the JPatterns engine category. In the case it is not initialized - null would be returned |
|
| 38 | */ |
|
| 39 | JPConstants.EngineConfigCaregory getCategory(); |
|
| 40 | ||
| 41 | /** |
|
| 42 | * @return true if the instance is initialized, false otherwise. For now the presence of the category set only influence on this, but in the |
|
| 43 | * future it could be changed |
|
| 44 | */ |
|
| 45 | boolean isInitialized(); |
|
| 46 | ||
| 47 | /** |
|
| 48 | * Get the IJPFactory using the provided name and the scope. Please be noticed in the case the scope is not specified the following |
|
| 49 | * constant is used as the scope id: |
|
| 50 | * (<code>com.sourceforge.jpatterns.core.JPConstants.DEFAULT_SCOPE_NAME</code>) |
|
| 51 | * <br/> |
|
| 52 | * Please be noticed that the factory returned using the provided scope name, may contains the items(implementation mappings) different |
|
| 53 | * then this scope provided. It takes place in the case when the factory has the default scope, and has the items with different scopes |
|
| 54 | * - all of them would be accesible through this factory (having the different scope). |
|
| 55 | * <br/> |
|
| 56 | * Throws JPInitializationException in the case it is not initialized |
|
| 57 | * |
|
| 58 | * @param factoryName the name of the factory to be retrieved. |
|
| 59 | * Can not be null (otherwise <code>IllegalArgumentException</code> would appear). |
|
| 60 | * @param scope scope name to be used for the retrieving of the appropriate factory. Could be null, in the case the default scope |
|
| 61 | * would be used. |
|
| 62 | * |
|
| 63 | * @return the IJPFactory instance to be used later. |
|
| 64 | */ |
|
| 65 | IJPFactory getFactory(final String factoryName, final String scope); |
|
| 66 | ||
| 67 | /** |
|
| 68 | * Get the IJPattern using the provided name and the scope. Please be noticed in the case the scope is not specified the following |
|
| 69 | * constant is used as the scope id: |
|
| 70 | * (<code>com.sourceforge.jpatterns.core.JPConstants.DEFAULT_SCOPE_NAME</code>) |
|
| 71 | * <br/> |
|
| 72 | * Be noticed that the pattern returned using the provided scope name, may contains the items(implementation mappings) different |
|
| 73 | * then this scope provided. |
|
| 74 | * <br/> |
|
| 75 | * Throws JPInitializationException in the case it is not initialized |
|
| 76 | * |
|
| 77 | * @param patternName the name of the pattern to be retrieved. |
|
| 78 | * Can not be null (otherwise <code>IllegalArgumentException</code> would appear). |
|
| 79 | * @param scope scope name to be used for the retrieving of the appropriate pattern. Could be null, in the case the default scope |
|
| 80 | * would be used. |
|
| 81 | * |
|
| 82 | * @return the IJPattern instance to be used later. |
|
| 83 | */ |
|
| 84 | IJPattern getPattern(final String patternName, final String scope); |
|
| 85 | ||
| 86 | /** |
|
| 87 | * Get the config pattern |
|
| 88 | * |
|
| 89 | * @param configName the name of the config pattern, Can not be null (otherwise <code>IllegalArgumentException</code> would appear). |
|
| 90 | * @param scope the name of the config scope, Can not be null (otherwise <code>IllegalArgumentException</code> would appear). |
|
| 91 | * |
|
| 92 | * @return the IJPConfig instance. |
|
| 93 | */ |
|
| 94 | IJPConfig getConfig(final String configName, final String scope); |
|
| 95 | } |