+ 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>) CdmStore.getService(IReferenceService.class);
+ }
+ else if (cdmBase.isInstanceOf(AgentBase.class)){
+ service = (IService<T>) CdmStore.getService(IAgentService.class);
+ }
+ else if (cdmBase instanceof NonViralName) {
+ service = (IService<T>) CdmStore.getService(INameService.class);
+ }
+ else if (cdmBase instanceof SpecimenOrObservationBase) {
+ service = (IService<T>) CdmStore.getService(IOccurrenceService.class);
+ }
+ else if (cdmBase instanceof Collection) {
+ service = (IService<T>) CdmStore.getService(ICollectionService.class);
+ }
+ else if (cdmBase instanceof User) {
+ service = (IService<T>) CdmStore.getService(IUserService.class);
+ }
+ else if (cdmBase instanceof Primer) {
+ service = (IService<T>) CdmStore.getService(IPrimerService.class);
+ }
+ else if (cdmBase instanceof Amplification) {
+ service = (IService<T>) CdmStore.getService(IAmplificationService.class);
+ }
+ }
+ return service;
+ }
+