View Javadoc

1   package org.cateproject.controller.editor;
2   
3   import java.util.UUID;
4   
5   import org.apache.commons.logging.Log;
6   import org.apache.commons.logging.LogFactory;
7   import org.cateproject.controller.flow.action.media.KeyType;
8   import org.cateproject.controller.flow.action.media.PhylogenyType;
9   import org.cateproject.controller.flow.action.taxon.EditSynonymMethod;
10  import org.cateproject.controller.flow.action.taxon.RemovalMethod;
11  import org.joda.time.DateTime;
12  import org.joda.time.Partial;
13  import org.springframework.beans.PropertyEditorRegistrar;
14  import org.springframework.beans.PropertyEditorRegistry;
15  import org.springframework.beans.factory.annotation.Autowired;
16  import org.springframework.beans.propertyeditors.StringTrimmerEditor;
17  import org.springframework.stereotype.Component;
18  
19  import eu.etaxonomy.cdm.api.service.IAgentService;
20  import eu.etaxonomy.cdm.api.service.ICollectionService;
21  import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
22  import eu.etaxonomy.cdm.api.service.IMediaService;
23  import eu.etaxonomy.cdm.api.service.INameService;
24  import eu.etaxonomy.cdm.api.service.IOccurrenceService;
25  import eu.etaxonomy.cdm.api.service.IReferenceService;
26  import eu.etaxonomy.cdm.api.service.ITaxonService;
27  import eu.etaxonomy.cdm.api.service.ITermService;
28  import eu.etaxonomy.cdm.api.service.IVocabularyService;
29  import eu.etaxonomy.cdm.model.agent.AgentBase;
30  import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;
31  import eu.etaxonomy.cdm.model.agent.Institution;
32  import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
33  import eu.etaxonomy.cdm.model.common.DefinedTermBase;
34  import eu.etaxonomy.cdm.model.common.LSID;
35  import eu.etaxonomy.cdm.model.common.Language;
36  import eu.etaxonomy.cdm.model.common.MarkerType;
37  import eu.etaxonomy.cdm.model.common.TermVocabulary;
38  import eu.etaxonomy.cdm.model.description.FeatureTree;
39  import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
40  import eu.etaxonomy.cdm.model.description.Sex;
41  import eu.etaxonomy.cdm.model.description.Stage;
42  import eu.etaxonomy.cdm.model.location.NamedArea;
43  import eu.etaxonomy.cdm.model.media.Media;
44  import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
45  import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
46  import eu.etaxonomy.cdm.model.name.Rank;
47  import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
48  import eu.etaxonomy.cdm.model.name.TaxonNameBase;
49  import eu.etaxonomy.cdm.model.occurrence.Collection;
50  import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
51  import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
52  import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
53  import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
54  import eu.etaxonomy.cdm.model.reference.Book;
55  import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
56  import eu.etaxonomy.cdm.model.reference.IReferenceBase;
57  import eu.etaxonomy.cdm.model.reference.Journal;
58  import eu.etaxonomy.cdm.model.reference.Proceedings;
59  import eu.etaxonomy.cdm.model.reference.ReferenceBase;
60  import eu.etaxonomy.cdm.model.taxon.TaxonBase;
61  import eu.etaxonomy.cdm.persistence.query.OrderHint;
62  import eu.etaxonomy.cdm.remote.editor.LSIDPropertyEditor;
63  
64  @Component("propertyEditorRegistrar")
65  public class CatePropertyEditorRegistrar implements PropertyEditorRegistrar {
66  	
67      private ITermService termService;
68  	
69  	private ITaxonService taxonService;
70  	
71  	private IVocabularyService vocabularyService;
72  	
73  	private IAgentService agentService;
74  	
75  	private IReferenceService referenceService;
76  	
77  	private INameService nameService;
78  	
79  	private IOccurrenceService occurrenceService;
80  	
81  	private ICollectionService collectionService;
82  	
83  	private IFeatureTreeService featureTreeService;
84  
85  	private IMediaService mediaService;
86  	
87  	private static Log log = LogFactory.getLog(CatePropertyEditorRegistrar.class);
88  	
89  	@Autowired
90  	public void setVocabularyService(IVocabularyService vocabularyService) {
91  		this.vocabularyService = vocabularyService;
92  	}
93  	
94  	@Autowired
95  	public void setTermService(ITermService termService) {
96  		this.termService = termService;
97  	}
98  	
99  	@Autowired
100 	public void setTaxonService(ITaxonService taxonService) {
101 		this.taxonService = taxonService;
102 	}
103 	
104 	@Autowired
105 	public void setReferenceService(IReferenceService referenceService) {
106 		this.referenceService = referenceService;
107 	}
108 	
109 	@Autowired
110 	public void setAgentService(IAgentService agentService) {
111 		this.agentService = agentService;
112 	}
113 	
114 	@Autowired
115 	public void setNameService(INameService nameService) {
116 		this.nameService = nameService;
117 	}
118 	
119 	@Autowired
120 	public void setOccurrenceService(IOccurrenceService occurrenceService) {
121 		this.occurrenceService = occurrenceService;
122 	}
123 	
124 	@Autowired
125 	public void setCollectionService(ICollectionService collectionService) {
126 		this.collectionService = collectionService;
127 	}
128 	
129 	@Autowired
130 	public void setMediaService(IMediaService mediaService) {
131 		this.mediaService = mediaService;
132 	}
133 	
134 	public void registerCustomEditors(PropertyEditorRegistry registry) {
135 		registry.registerCustomEditor(java.lang.Class.class, new ClassPropertyEditor());
136 		registry.registerCustomEditor(DateTime.class, new DateTimeEditor());
137 		registry.registerCustomEditor(MarkerType.class, new MarkerTypePropertyEditor());
138 	    registry.registerCustomEditor(java.lang.String.class, new StringTrimmerEditor(true));
139 		registry.registerCustomEditor(UUID.class, new UUIDPropertyEditor());
140 		registry.registerCustomEditor(Partial.class, new PartialPropertyEditor());
141 		registry.registerCustomEditor(LSID.class, new LSIDPropertyEditor());
142 		registry.registerCustomEditor(OrderHint.class, new OrderHintPropertyEditor());
143 		registry.registerCustomEditor(NomenclaturalCode.class, new NomenclaturalCodePropertyEditor());
144 		registry.registerCustomEditor(RemovalMethod.class, new RemovalMethodPropertyEditor());
145 		registry.registerCustomEditor(EditSynonymMethod.class, new EditSynonymMethodPropertyEditor());
146 		registry.registerCustomEditor(KeyType.class, new KeyTypePropertyEditor());
147 		registry.registerCustomEditor(PhylogenyType.class, new PhylogenyTypePropertyEditor());		
148  		
149 		registry.registerCustomEditor(Rank.class, new DefinedTermPropertyEditor(Rank.class,termService));
150 		registry.registerCustomEditor(Language.class, new DefinedTermPropertyEditor(Language.class,termService));
151 		registry.registerCustomEditor(PresenceAbsenceTermBase.class, new DefinedTermPropertyEditor(PresenceAbsenceTermBase.class,termService));
152 		registry.registerCustomEditor(NamedArea.class, new DefinedTermPropertyEditor(NamedArea.class,termService));
153 		registry.registerCustomEditor(SpecimenTypeDesignationStatus.class, new DefinedTermPropertyEditor(SpecimenTypeDesignationStatus.class, termService));
154 		registry.registerCustomEditor(NameTypeDesignationStatus.class, new DefinedTermPropertyEditor(NameTypeDesignationStatus.class, termService));
155 		registry.registerCustomEditor(Sex.class, new DefinedTermPropertyEditor(Sex.class, termService));
156 		registry.registerCustomEditor(Stage.class, new DefinedTermPropertyEditor(Stage.class, termService));
157 		registry.registerCustomEditor(PreservationMethod.class, new DefinedTermPropertyEditor(PreservationMethod.class, termService));
158 		registry.registerCustomEditor(DerivationEventType.class, new DefinedTermPropertyEditor(DerivationEventType.class, termService));
159 		registry.registerCustomEditor(DefinedTermBase.class, new DefinedTermPropertyEditor(DefinedTermBase.class, termService));
160 
161 		registry.registerCustomEditor(FeatureTree.class,new FeatureTreePropertyEditor(FeatureTree.class, featureTreeService));
162 		registry.registerCustomEditor(Media.class, new MediaPropertyEditor(Media.class,mediaService));
163 		registry.registerCustomEditor(TermVocabulary.class, new VocabularyPropertyEditor(TermVocabulary.class,vocabularyService));
164 		registry.registerCustomEditor(Collection.class, new CollectionPropertyEditor(Collection.class,collectionService));
165 		registry.registerCustomEditor(TaxonNameBase.class, new TaxonNameBasePropertyEditor(TaxonNameBase.class,nameService));
166 		registry.registerCustomEditor(TaxonBase.class, new TaxonBasePropertyEditor(TaxonBase.class,taxonService));
167 		registry.registerCustomEditor(AgentBase.class, new AgentBasePropertyEditor(AgentBase.class, agentService));
168 		registry.registerCustomEditor(INomenclaturalAuthor.class, new AgentBasePropertyEditor(TeamOrPersonBase.class, agentService));
169 		registry.registerCustomEditor(TeamOrPersonBase.class, new AgentBasePropertyEditor(TeamOrPersonBase.class, agentService));
170 		registry.registerCustomEditor(Institution.class, new AgentBasePropertyEditor(Institution.class, agentService));
171  			
172 		registry.registerCustomEditor(Proceedings.class, new ReferenceBasePropertyEditor(Proceedings.class,referenceService));
173 		registry.registerCustomEditor(Book.class, new ReferenceBasePropertyEditor(Book.class,referenceService));
174 		registry.registerCustomEditor(Journal.class, new ReferenceBasePropertyEditor(Journal.class,referenceService));
175 		registry.registerCustomEditor(ReferenceBase.class, new ReferenceBasePropertyEditor(ReferenceBase.class,referenceService));
176 		registry.registerCustomEditor(IReferenceBase.class, new ReferenceBasePropertyEditor(ReferenceBase.class,referenceService));
177 		registry.registerCustomEditor(INomenclaturalReference.class, new ReferenceBasePropertyEditor(ReferenceBase.class,referenceService));
178 		
179 		registry.registerCustomEditor(DerivedUnitBase.class, new SpecimenOrObservationBasePropertyEditor(DerivedUnitBase.class,occurrenceService));
180 		registry.registerCustomEditor(SpecimenOrObservationBase.class, new SpecimenOrObservationBasePropertyEditor(SpecimenOrObservationBase.class,occurrenceService));	
181 	}
182 }