import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.ICollectionService;
import eu.etaxonomy.cdm.api.service.ICommonService;
+import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
+import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
import eu.etaxonomy.cdm.config.ICdmSource;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.Primer;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
import eu.etaxonomy.cdm.persistence.hibernate.permission.Role;
}
+ public static <T extends CdmBase> IService<T> getService(T cdmBase){
+ IService<T> service = null;
+ if(cdmBase!=null){
+ //get corresponding service
+ if(cdmBase.isInstanceOf(Reference.class)){
+ service = (IService<T>) getService(IReferenceService.class);
+ }
+ else if (cdmBase.isInstanceOf(AgentBase.class)){
+ service = (IService<T>) getService(IAgentService.class);
+ }
+ else if (cdmBase instanceof NonViralName) {
+ service = (IService<T>) getService(INameService.class);
+ }
+ else if (cdmBase instanceof SpecimenOrObservationBase) {
+ service = (IService<T>) getService(IOccurrenceService.class);
+ }
+ else if (cdmBase instanceof Collection) {
+ service = (IService<T>) getService(ICollectionService.class);
+ }
+ else if (cdmBase instanceof User) {
+ service = (IService<T>) getService(IUserService.class);
+ }
+ else if (cdmBase instanceof Primer) {
+ service = (IService<T>) getService(IPrimerService.class);
+ }
+ else if (cdmBase instanceof Amplification) {
+ service = (IService<T>) getService(IAmplificationService.class);
+ }
+ }
+ return service;
+ }
+
public static void setManagedServer(CDMServer server) {
managedServer = server;
}