2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.model
.common
;
11 import java
.lang
.reflect
.Constructor
;
12 import java
.util
.HashMap
;
14 import java
.util
.UUID
;
16 import org
.apache
.log4j
.Logger
;
18 import eu
.etaxonomy
.cdm
.model
.MockCdmCacher
;
19 import eu
.etaxonomy
.cdm
.model
.common
.init
.ITermInitializer
;
20 import eu
.etaxonomy
.cdm
.model
.common
.init
.ITermLoader
;
21 import eu
.etaxonomy
.cdm
.model
.common
.init
.TermLoader
;
27 public class DefaultTermInitializer
implements ITermInitializer
{
28 @SuppressWarnings("unused")
29 private static final Logger logger
= Logger
.getLogger(DefaultTermInitializer
.class);
30 protected ITermLoader termLoader
= new TermLoader();
32 public void initialize() {
33 termLoader
.unloadAllTerms();
37 protected void doInitialize(){
38 Map
<UUID
,DefinedTermBase
> terms
= new HashMap
<UUID
,DefinedTermBase
>();
40 // for(Class<? extends DefinedTermBase<?>> clazz : classesToInitialize) {
41 for(VocabularyEnum vocabularyEnum
: VocabularyEnum
.values()) {
42 // Class<? extends DefinedTermBase<?>> clazz = vocabularyEnum.getClazz();
43 TermVocabulary
<?
> voc
= termLoader
.loadTerms(vocabularyEnum
, terms
);
44 setDefinedTerms(vocabularyEnum
.getClazz(),voc
);
46 //preliminary to make cdmlib-model test running until we completely moved to CdmCacher
51 protected void setDefinedTerms(Class
<?
extends DefinedTermBase
<?
>> clazz
, TermVocabulary
<?
> vocabulary
) {
52 DefinedTermBase newInstance
;
53 newInstance
= getInstance(clazz
);
54 newInstance
.setDefaultTerms(vocabulary
);
57 private <T
extends DefinedTermBase
> T
getInstance(Class
<?
extends DefinedTermBase
> termClass
) {
59 Constructor
<T
> c
= ((Class
<T
>)termClass
).getDeclaredConstructor();
60 c
.setAccessible(true);
61 T termInstance
= c
.newInstance();
63 } catch (Exception e
) {
64 throw new RuntimeException(e
);