Upload the ESR server seed code.
[aai/esr-server.git] / esr-core / esr-mgr / src / main / java / org / onap / aai / esr / dao / DaoManager.java
1 /**
2  * Copyright 2016 ZTE Corporation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.onap.aai.esr.dao;
18
19 import org.hibernate.SessionFactory;
20 import org.onap.aai.esr.common.ExtSysResuorceType;
21 import org.onap.aai.esr.exception.ExtsysException;
22
23 /**
24  * DAO manager class.<br>
25  * a class to store DAO instances and provide methods to get these instances
26  * 
27  *
28  */
29 public class DaoManager {
30   private static DaoManager instance = new DaoManager();
31
32   private VimDao vimDao;
33   private EmsDao emsDao;
34   private VnfmDao vnfmDao;
35   private SdncDao sdncDao;
36   private CommonDao commonDao;
37   private SessionFactory sessionFactory;
38
39   private DaoManager() {}
40
41   public static synchronized DaoManager getInstance() {
42     return instance;
43   }
44
45   /**
46    * according to resource type and return proper DAO.
47    * 
48    * @param type resource Type
49    * @return DAO
50    */
51   public BaseDao<?> getDao(String type) throws ExtsysException {
52     if (sessionFactory == null) {
53       throw new ExtsysException("", "errorMsg:database connect init faild!");
54     }
55     switch (ExtSysResuorceType.getType(type)) {
56       case VIM:
57         return getVimDao();
58       case SDNC:
59         return getSdncDao();
60       case VNFM:
61         return getVnfmDao();
62       case EMS:
63         return getEmsDao();
64       default:
65         return getCommonDao();
66     }
67   }
68
69   public void setSessionFactory(SessionFactory sessionFactory) {
70     this.sessionFactory = sessionFactory;
71   }
72
73   public SessionFactory getSessionFactory() {
74     return sessionFactory;
75   }
76
77   /**
78    * @return Returns the vim dao.
79    */
80   public VimDao getVimDao() {    
81     vimDao = new VimDao(sessionFactory);
82     return vimDao;
83   }
84
85   public void setVimDao(VimDao vimDao) {
86     this.vimDao = vimDao;
87   }
88
89   /**
90    * @return Returns the ems dao.
91    */
92   public EmsDao getEmsDao() {
93     emsDao = new EmsDao(sessionFactory);
94     return emsDao;
95   }
96
97   public void setEmsDao(EmsDao emsDao) {
98     this.emsDao = emsDao;
99   }
100
101   /**
102    * @return Returns the vnfm dao.
103    */
104   public VnfmDao getVnfmDao() {
105     vnfmDao = new VnfmDao(sessionFactory);
106     return vnfmDao;
107   }
108
109   public void setVnfmDao(VnfmDao vnfmDao) {
110     this.vnfmDao = vnfmDao;
111   }
112
113   /**
114    * @return Returns the sdnc dao.
115    */
116   public SdncDao getSdncDao() {
117     sdncDao = new SdncDao(sessionFactory);
118     return sdncDao;
119   }
120
121   public void setSdncDao(SdncDao sdncDao) {
122     this.sdncDao = sdncDao;
123   }
124
125   /**
126    * @return Returns the common dao.
127    */
128   public CommonDao getCommonDao() {
129     commonDao = new CommonDao(sessionFactory);
130     return commonDao;
131   }
132
133   public void setCommonDao(CommonDao commonDao) {
134     this.commonDao = commonDao;
135   }
136
137 }