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