1
22
23 package com.liferay.portal.service.persistence.impl;
24
25 import com.liferay.portal.SystemException;
26 import com.liferay.portal.kernel.dao.orm.Dialect;
27 import com.liferay.portal.kernel.dao.orm.ORMException;
28 import com.liferay.portal.kernel.dao.orm.Session;
29 import com.liferay.portal.kernel.dao.orm.SessionFactory;
30 import com.liferay.portal.kernel.log.Log;
31 import com.liferay.portal.kernel.log.LogFactoryUtil;
32 import com.liferay.portal.kernel.util.ListUtil;
33 import com.liferay.portal.model.ModelListener;
34 import com.liferay.portal.service.persistence.BasePersistence;
35
36 import java.util.List;
37
38 import javax.sql.DataSource;
39
40
46 public class BasePersistenceImpl implements BasePersistence, SessionFactory {
47
48 public static final String COUNT_COLUMN_NAME = "COUNT_VALUE";
49
50 public void closeSession(Session session) {
51 _sessionFactory.closeSession(session);
52 }
53
54 public DataSource getDataSource() {
55 return _dataSource;
56 }
57
58 public Dialect getDialect() {
59 return _dialect;
60 }
61
62 public ModelListener[] getListeners() {
63 return listeners;
64 }
65
66 public Session openSession() throws ORMException {
67 return _sessionFactory.openSession();
68 }
69
70 public void registerListener(ModelListener listener) {
71 List<ModelListener> listenersList = ListUtil.fromArray(listeners);
72
73 listenersList.add(listener);
74
75 listeners = listenersList.toArray(
76 new ModelListener[listenersList.size()]);
77 }
78
79 public SystemException processException(Exception e) {
80 if (e instanceof ORMException) {
81 _log.error("Caught ORMException");
82 }
83 else {
84 _log.error("Caught unexpected exception " + e.getClass().getName());
85 }
86
87 if (_log.isDebugEnabled()) {
88 _log.debug(e, e);
89 }
90
91 return new SystemException(e);
92 }
93
94 public void setDataSource(DataSource dataSource) {
95 _dataSource = dataSource;
96 }
97
98 public void setSessionFactory(SessionFactory sessionFactory) {
99 _sessionFactory = sessionFactory;
100 _dialect = _sessionFactory.getDialect();
101 }
102
103 public void unregisterListener(ModelListener listener) {
104 List<ModelListener> listenersList = ListUtil.fromArray(listeners);
105
106 listenersList.remove(listener);
107
108 listeners = listenersList.toArray(
109 new ModelListener[listenersList.size()]);
110 }
111
112 protected ModelListener[] listeners = new ModelListener[0];
113
114 private static Log _log = LogFactoryUtil.getLog(BasePersistenceImpl.class);
115
116 private DataSource _dataSource;
117 private SessionFactory _sessionFactory;
118 private Dialect _dialect;
119
120 }