1 package org.apache.continuum.dao;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
23 import org.apache.maven.continuum.store.ContinuumStoreException;
24 import org.springframework.stereotype.Repository;
25
26 import java.util.Collections;
27 import java.util.List;
28 import javax.jdo.Extent;
29 import javax.jdo.PersistenceManager;
30 import javax.jdo.Query;
31 import javax.jdo.Transaction;
32
33
34
35
36
37
38 @Repository( "repositoryPurgeConfigurationDao" )
39 public class RepositoryPurgeConfigurationDaoImpl
40 extends AbstractDao
41 implements RepositoryPurgeConfigurationDao
42 {
43 public List<RepositoryPurgeConfiguration> getAllRepositoryPurgeConfigurations()
44 {
45 return getAllObjectsDetached( RepositoryPurgeConfiguration.class );
46 }
47
48 public List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsBySchedule( int scheduleId )
49 {
50 PersistenceManager pm = getPersistenceManager();
51
52 Transaction tx = pm.currentTransaction();
53
54 try
55 {
56 tx.begin();
57
58 Extent extent = pm.getExtent( RepositoryPurgeConfiguration.class, true );
59
60 Query query = pm.newQuery( extent );
61
62 query.declareParameters( "int scheduleId" );
63
64 query.setFilter( "this.schedule.id == scheduleId" );
65
66 List result = (List) query.execute( scheduleId );
67
68 return result == null ? Collections.EMPTY_LIST : (List) pm.detachCopyAll( result );
69 }
70 finally
71 {
72 tx.commit();
73
74 rollback( tx );
75 }
76 }
77
78 public List<RepositoryPurgeConfiguration> getEnableRepositoryPurgeConfigurationsBySchedule( int scheduleId )
79 {
80 PersistenceManager pm = getPersistenceManager();
81
82 Transaction tx = pm.currentTransaction();
83
84 try
85 {
86 tx.begin();
87
88 Extent extent = pm.getExtent( RepositoryPurgeConfiguration.class, true );
89
90 Query query = pm.newQuery( extent );
91
92 query.declareParameters( "int scheduleId" );
93
94 query.setFilter( "this.schedule.id == scheduleId && this.enabled == true" );
95
96 List result = (List) query.execute( scheduleId );
97
98 return result == null ? Collections.EMPTY_LIST : (List) pm.detachCopyAll( result );
99 }
100 finally
101 {
102 tx.commit();
103
104 rollback( tx );
105 }
106 }
107
108 public List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsByLocalRepository( int repositoryId )
109 {
110 PersistenceManager pm = getPersistenceManager();
111
112 Transaction tx = pm.currentTransaction();
113
114 try
115 {
116 tx.begin();
117
118 Extent extent = pm.getExtent( RepositoryPurgeConfiguration.class, true );
119
120 Query query = pm.newQuery( extent );
121
122 query.declareParameters( "int repositoryId" );
123
124 query.setFilter( "this.repository.id == repositoryId" );
125
126 List result = (List) query.execute( repositoryId );
127
128 return result == null ? Collections.EMPTY_LIST : (List) pm.detachCopyAll( result );
129 }
130 finally
131 {
132 tx.commit();
133
134 rollback( tx );
135 }
136 }
137
138 public RepositoryPurgeConfiguration getRepositoryPurgeConfiguration( int configurationId )
139 throws ContinuumStoreException
140 {
141 return (RepositoryPurgeConfiguration) getObjectById( RepositoryPurgeConfiguration.class, configurationId );
142 }
143
144 public RepositoryPurgeConfiguration addRepositoryPurgeConfiguration(
145 RepositoryPurgeConfiguration purgeConfiguration )
146 throws ContinuumStoreException
147 {
148 return (RepositoryPurgeConfiguration) addObject( purgeConfiguration );
149 }
150
151 public void updateRepositoryPurgeConfiguration( RepositoryPurgeConfiguration purgeConfiguration )
152 throws ContinuumStoreException
153 {
154 updateObject( purgeConfiguration );
155 }
156
157 public void removeRepositoryPurgeConfiguration( RepositoryPurgeConfiguration purgeConfiguration )
158 throws ContinuumStoreException
159 {
160 removeObject( purgeConfiguration );
161 }
162
163 }