1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.dao.jdbc;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.apache.ojb.broker.PBKey;
20 import org.apache.ojb.broker.PersistenceBroker;
21 import org.kuali.rice.core.api.config.ConfigurationException;
22 import org.kuali.rice.core.framework.persistence.jdbc.dao.PlatformAwareDaoBaseJdbc;
23 import org.kuali.rice.krad.bo.DocumentHeader;
24 import org.kuali.rice.krad.bo.ModuleConfiguration;
25 import org.kuali.rice.krad.dao.SequenceAccessorDao;
26 import org.kuali.rice.krad.data.platform.MaxValueIncrementerFactory;
27 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
28 import org.kuali.rice.krad.service.KualiModuleService;
29 import org.kuali.rice.krad.service.ModuleService;
30 import org.kuali.rice.krad.util.LegacyUtils;
31 import org.springmodules.orm.ojb.OjbFactoryUtils;
32
33
34
35
36 @Deprecated
37 public class SequenceAccessorDaoJdbc extends PlatformAwareDaoBaseJdbc implements SequenceAccessorDao {
38 private KualiModuleService kualiModuleService;
39
40 private Long nextAvailableSequenceNumber(String sequenceName,
41 Class clazz) {
42
43 ModuleService moduleService = getKualiModuleService().getResponsibleModuleService(clazz);
44 if ( moduleService == null )
45 throw new ConfigurationException("moduleService is null");
46
47 ModuleConfiguration moduleConfig = moduleService.getModuleConfiguration();
48 if ( moduleConfig == null )
49 throw new ConfigurationException("moduleConfiguration is null");
50
51 if (!LegacyUtils.useLegacy(clazz)) {
52 throw new ConfigurationException("SequenceAccessorService should not be used with new data framework! Use "
53 + MaxValueIncrementerFactory.class.getName() + " instead.");
54 }
55 else {
56 String dataSourceName = moduleConfig.getDataSourceName();
57 if ( StringUtils.isEmpty(dataSourceName) ) {
58
59 moduleConfig = getKualiModuleService().getResponsibleModuleService(DocumentHeader.class).getModuleConfiguration();
60 dataSourceName = moduleConfig.getDataSourceName();
61 }
62 if (StringUtils.isEmpty(dataSourceName)) {
63 throw new ConfigurationException("dataSourceName is not set");
64 }
65
66 PBKey key = new PBKey(dataSourceName);
67 PersistenceBroker broker = OjbFactoryUtils.getPersistenceBroker(key, false);
68 if ( broker != null )
69 return getDbPlatform().getNextValSQL(sequenceName, broker);
70 else
71 throw new ConfigurationException("PersistenceBroker is null");
72 }
73 }
74
75 public Long getNextAvailableSequenceNumber(String sequenceName,
76 Class clazz) {
77
78
79
80
81
82
83
84 try {
85 return nextAvailableSequenceNumber(sequenceName, clazz);
86 }
87 catch ( ConfigurationException e ) {
88
89 return nextAvailableSequenceNumber(sequenceName, DocumentHeader.class);
90 }
91 }
92
93
94
95
96 public Long getNextAvailableSequenceNumber(String sequenceName) {
97
98 return nextAvailableSequenceNumber(sequenceName, DocumentHeader.class);
99 }
100
101 private KualiModuleService getKualiModuleService() {
102 if ( kualiModuleService == null )
103 kualiModuleService = KRADServiceLocatorWeb.getKualiModuleService();
104 return kualiModuleService;
105 }
106 }