View Javadoc
1   package fr.ifremer.tutti.persistence.service;
2   
3   /*
4    * #%L
5    * Tutti :: Persistence
6    * %%
7    * Copyright (C) 2012 - 2014 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the 
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public 
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
23   */
24  
25  import fr.ifremer.adagio.core.service.ServiceLocator;
26  import fr.ifremer.adagio.core.service.technical.sanity.DatabaseSanityService;
27  import fr.ifremer.adagio.core.service.technical.synchro.ReferentialSynchroService;
28  import fr.ifremer.tutti.persistence.TuttiPersistence;
29  import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
30  import fr.ifremer.tutti.persistence.service.referential.CaracteristicPersistenceService;
31  import fr.ifremer.tutti.persistence.service.referential.GearPersistenceService;
32  import fr.ifremer.tutti.persistence.service.referential.LocationPersistenceService;
33  import fr.ifremer.tutti.persistence.service.referential.ObjectTypePersistenceService;
34  import fr.ifremer.tutti.persistence.service.referential.PersonPersistenceService;
35  import fr.ifremer.tutti.persistence.service.referential.SpeciesPersistenceService;
36  import fr.ifremer.tutti.persistence.service.referential.VesselPersistenceService;
37  
38  /**
39   * To obtain services from spring context.
40   *
41   * @author Tony Chemit - chemit@codelutin.com
42   * @since 0.3
43   */
44  public class TuttiPersistenceServiceLocator extends ServiceLocator {
45  
46      static {
47          initTuttiDefault();
48      }
49  
50      public static void initTuttiDefault() {
51          instance().init("tuttiBeanRefFactory.xml", "TuttiBeanRefFactory");
52      }
53  
54      public static void initTutti(String beanFactoryReferenceLocation,
55                                   String beanRefFactoryReferenceId) {
56          instance().init(beanFactoryReferenceLocation, beanRefFactoryReferenceId);
57      }
58  
59      public static TuttiPersistence getPersistenceService() {
60          return getPersistenceService("tuttiPersistence",
61                                       TuttiPersistence.class);
62      }
63  
64      public static TechnicalPersistenceService getTechnicalPersistenceService() {
65          return instance().getService("technicalPersistenceService",
66                                       TechnicalPersistenceService.class);
67      }
68  
69      public static ProgramPersistenceService getProgramPersistenceService() {
70          return getPersistenceService("programPersistenceService",
71                                       ProgramPersistenceService.class);
72      }
73  
74      public static CruisePersistenceService getCruisePersistenceService() {
75          return getPersistenceService("cruisePersistenceService",
76                                       CruisePersistenceService.class);
77      }
78  
79      public static FishingOperationPersistenceService getFishingOperationPersistenceService() {
80          return getPersistenceService("fishingOperationPersistenceService",
81                                       FishingOperationPersistenceService.class);
82      }
83  
84      public static CatchBatchPersistenceService getCatchBatchPersistenceService() {
85          return getPersistenceService("batchPersistenceService",
86                                       CatchBatchPersistenceService.class);
87      }
88  
89      public static SpeciesBatchPersistenceService getSpeciesBatchPersistenceService() {
90          return getPersistenceService("speciesBatchPersistenceService",
91                                       SpeciesBatchPersistenceService.class);
92      }
93  
94      public static BenthosBatchPersistenceService getBenthosBatchPersistenceService() {
95          return getPersistenceService("benthosBatchPersistenceService",
96                                       BenthosBatchPersistenceService.class);
97      }
98  
99      public static MarineLitterBatchPersistenceService getMarineLitterBatchPersistenceService() {
100         return getPersistenceService("marineLitterBatchPersistenceService",
101                                      MarineLitterBatchPersistenceService.class);
102     }
103 
104     public static AccidentalBatchPersistenceService getAccidentalBatchPersistenceService() {
105         return getPersistenceService("accidentalBatchPersistenceService",
106                                      AccidentalBatchPersistenceService.class);
107     }
108 
109     public static IndividualObservationBatchPersistenceService getIndividualObservationBatchPersistenceService() {
110         return getPersistenceService("individualObservationBatchPersistenceService",
111                                      IndividualObservationBatchPersistenceService.class);
112     }
113 
114     public static ProtocolPersistenceService getProtocolPersistenceService() {
115         return getPersistenceService("protocolPersistenceService",
116                                      ProtocolPersistenceService.class);
117     }
118 
119     //TODO Move this to adagio
120     public static ReferentialSynchroService getReferentialSynchroService() {
121         return instance().getService(
122                 "referentialSynchroServiceTutti", ReferentialSynchroService.class);
123     }
124 
125     //TODO Move this to adagio
126     public static DatabaseSanityService getDatabaseSanityService() {
127         return instance().getService(
128                 "databaseSanityService", DatabaseSanityService.class);
129     }
130 
131     public static AttachmentPersistenceService getAttachmentPersistenceService() {
132         return getPersistenceService("attachmentPersistenceService",
133                                      AttachmentPersistenceService.class);
134     }
135 
136     public static <S extends TuttiPersistenceServiceImplementor> S getPersistenceService(String name, Class<S> serviceType) {
137         S service = instance().getService(name, serviceType);
138         service.init();
139         return service;
140     }
141 
142     public static void shutdownTutti() {
143         instance().shutdown();
144     }
145 
146     public static CaracteristicPersistenceService getCaracteristicPersistenceService() {
147         return getPersistenceService("caracteristicPersistenceService",
148                                      CaracteristicPersistenceService.class);
149     }
150 
151     public static GearPersistenceService getGearPersistenceService() {
152         return getPersistenceService("gearPersistenceService",
153                                      GearPersistenceService.class);
154     }
155 
156     public static LocationPersistenceService getLocationPersistenceService() {
157         return getPersistenceService("locationPersistenceService",
158                                      LocationPersistenceService.class);
159     }
160 
161     public static ObjectTypePersistenceService getObjectTypePersistenceService() {
162         return getPersistenceService("objectTypePersistenceService",
163                                      ObjectTypePersistenceService.class);
164     }
165 
166     public static PersonPersistenceService getPersonPersistenceService() {
167         return getPersistenceService("personPersistenceService",
168                                      PersonPersistenceService.class);
169     }
170 
171     public static SpeciesPersistenceService getSpeciesPersistenceService() {
172         return getPersistenceService("speciesPersistenceService",
173                                      SpeciesPersistenceService.class);
174     }
175 
176 
177     public static VesselPersistenceService getVesselPersistenceService() {
178         return getPersistenceService("vesselPersistenceService",
179                                      VesselPersistenceService.class);
180     }
181 }