4
4
import java .util .Collection ;
5
5
import java .util .HashMap ;
6
6
7
- import org .fugerit .java .core .cfg .ConfigurableObject ;
8
7
import org .fugerit .java .core .cfg .xml .FactoryCatalog ;
9
8
import org .fugerit .java .core .cfg .xml .FactoryType ;
9
+ import org .fugerit .java .core .cfg .xml .FactoryTypeHelper ;
10
10
import org .fugerit .java .core .io .helper .StreamHelper ;
11
- import org .fugerit .java .core .lang .helpers .ClassHelper ;
12
11
import org .fugerit .java .doc .base .config .DocTypeHandler ;
12
+ import org .slf4j .Logger ;
13
+ import org .slf4j .LoggerFactory ;
13
14
14
15
public class DocHandlerFactory extends HashMap <String , DocHandlerFacade > {
15
16
@@ -22,6 +23,10 @@ public class DocHandlerFactory extends HashMap<String, DocHandlerFacade> {
22
23
23
24
private String useCatalog ;
24
25
26
+ private final static Logger logger = LoggerFactory .getLogger ( DocHandlerFactory .class );
27
+
28
+ private static final FactoryTypeHelper <DocTypeHandler > HELPER = FactoryTypeHelper .newInstance ( DocTypeHandler .class );
29
+
25
30
public static DocHandlerFacade register ( String factoryCatalogPath ) throws Exception {
26
31
return register ( factoryCatalogPath , null );
27
32
}
@@ -42,11 +47,12 @@ public static DocHandlerFacade register( Collection<FactoryType> col ) throws Ex
42
47
if ( col != null ) {
43
48
facade = new DocHandlerFacade ();
44
49
for ( FactoryType ft : col ) {
45
- DocTypeHandler handler = (DocTypeHandler ) ClassHelper .newInstance ( ft .getType () );
46
- if ( handler instanceof ConfigurableObject ) {
47
- ((ConfigurableObject )handler ).configure ( ft .getElement ());
50
+ DocTypeHandler handler = HELPER .createHelper ( ft );
51
+ if ( handler != null ) {
52
+ facade .registerHandler ( handler );
53
+ } else {
54
+ logger .info ( "skipped null handler for -> {}" , ft );
48
55
}
49
- facade .registerHandler ( handler );
50
56
}
51
57
}
52
58
return facade ;
0 commit comments