1
2
3
4
5
6
7
8
9
10
11
12 package sk.uniba.euromath.editor;
13 import java.util.Map;
14
15 /***
16 * <p>
17 * Produces renderer instances. Must be equal only to factory with same class.
18 * <code>hashCode()</code> must be implemented correctly aswell, to reflect
19 * this behaviour. In case of singleton factory, default Object's
20 * <code>equals()</code> and <code>hashCode()</code> is the correct
21 * implementation thus it is not needed to be overriden.
22 * </p>
23 * @author Martin Vysny
24 */
25 public interface IRendererFactory {
26 /***
27 * ID of extension point for renderer factory instances.
28 */
29 public static final String EXTENSION_POINT_ID = "sk.uniba.euromath.IRendererFactory";
30 /***
31 * Produces an instance of renderer denoted by given ID.
32 * @param id id of the renderer.
33 * @return renderer instance.
34 * @throws EditorException if error occurs during renderer creation.
35 * @throws IllegalArgumentException if id is not known.
36 */
37 public IRenderer produce(final String id) throws EditorException;
38 /***
39 * Returns map that maps ID of an renderer to the information about that
40 * renderer.
41 * @return maps ID to info about the renderer. Factory should compute this
42 * map only once - it won't get modified.
43 * @throws EditorException if problem occurs.
44 */
45 public Map<String, RendererInfo> getSupportedRenderers()
46 throws EditorException;
47 }