View Javadoc

1   package org.apache.continuum.dao;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
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   * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
35   * @version $Id: RepositoryPurgeConfigurationDaoImpl.java 1372260 2012-08-13 04:29:09Z brett $
36   * @plexus.component role="org.apache.continuum.dao.RepositoryPurgeConfigurationDao"
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 }