Reference Manual for Gracelets - 2.0.0.RC2 |
1
package gracelets.api.facelets;
2
3
import gracelets.api.resource.GraceletSource;
4
import gracelets.api.spi.GraceletsImplementation;
5
import groovy.lang.GroovyObject;
6
7
import java.util.ArrayList;
8
import java.util.List;
9
10
/**
11
* This is the basic interface/contract for {@link GraceletHandler} factories, responsible for managing
12
* the registration of multiple {@link GraceletHandlerInitializer}'s. {@link GraceletsImplementation} must
13
* provide a concrete implementation of this class that will setup at least one default {@link GraceletHandlerInitializer}.
14
*
15
* @author ponder
16
* @author $Author: ponderator $
17
* @version $Id: GraceletsHandlerFactory.java 1710 2009-07-10 18:18:28Z ponderator $
18
*/
19
public abstract class GraceletsHandlerFactory {
20
21
protected List<GraceletHandlerInitializer> initializers = new ArrayList<GraceletHandlerInitializer>();
22
23
/**
24
* It is generally expected that sub classes will loop through the registered initializers until one
25
* returns positive that it can handled the generated class.
26
*
27
* @param src The gracelet source for the handler
28
* @param alias The alias, a view id for views otherwise a valid path
29
* @param precompiled The precompiled class, or null if the source was empty
30
* @return An implementation specific handler for the gracelet source, or null if no initializers could generate a handler for the class
31
*/
32
public abstract GraceletHandler createHandler (GraceletSource src, String alias, Class<? extends GroovyObject> precompiled);
33
34
/**
35
* Register/add a handler initializer to the current application.
36
*
37
* @param initializer The initializer to be registered
38
*/
39
public void register (GraceletHandlerInitializer initializer) { initializers.add(initializer); }
40
41
/**
42
* Unregister/remove a handler initializer from the current application.
43
*
44
* @param initializer The initializer to be unregistered
45
*/
46
public void unregister (GraceletHandlerInitializer initializer) { initializers.remove(initializer); }
47
48
}
org.ponder.gracelets.impl.DefaultScriptHandlerInitializer
and inside the createHandler() method simply loops through the registered
initializers and if one can produce a handler for the given compiled class it will then allow that initializer to generate the GraceletHandler.Toggle Line Numbers |
1
package org.ponder.gracelets.impl; |
Toggle Line Numbers |
1
package gracelets.api.extension.wicket; |
Gracelets 2008 © | Generated by Gracelets Documentation Generator - 08/27/2009 08:28PM CDT |