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.DistributedDirectoryPurgeConfiguration;
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
35   * @version $Id: DistributedDirectoryPurgeConfigurationDaoImpl.java 1372260 2012-08-13 04:29:09Z brett $
36   * @plexus.component role="org.apache.continuum.dao.DistributedDirectoryPurgeConfigurationDao"
37   */
38  @Repository( "distributedDirectoryPurgeConfigurationDao" )
39  public class DistributedDirectoryPurgeConfigurationDaoImpl
40      extends AbstractDao
41      implements DistributedDirectoryPurgeConfigurationDao
42  {
43      public List<DistributedDirectoryPurgeConfiguration> getAllDistributedDirectoryPurgeConfigurations()
44      {
45          return getAllObjectsDetached( DistributedDirectoryPurgeConfiguration.class );
46      }
47  
48      public List<DistributedDirectoryPurgeConfiguration> getDistributedDirectoryPurgeConfigurationsBySchedule(
49          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( DistributedDirectoryPurgeConfiguration.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<DistributedDirectoryPurgeConfiguration> getEnableDistributedDirectoryPurgeConfigurationsBySchedule(
80          int scheduleId )
81      {
82          PersistenceManager pm = getPersistenceManager();
83  
84          Transaction tx = pm.currentTransaction();
85  
86          try
87          {
88              tx.begin();
89  
90              Extent extent = pm.getExtent( DistributedDirectoryPurgeConfiguration.class, true );
91  
92              Query query = pm.newQuery( extent );
93  
94              query.declareParameters( "int scheduleId" );
95  
96              query.setFilter( "this.schedule.id == scheduleId && this.enabled == true" );
97  
98              List result = (List) query.execute( scheduleId );
99  
100             return result == null ? Collections.EMPTY_LIST : (List) pm.detachCopyAll( result );
101         }
102         finally
103         {
104             tx.commit();
105 
106             rollback( tx );
107         }
108     }
109 
110     public List<DistributedDirectoryPurgeConfiguration> getDistributedDirectoryPurgeConfigurationsByType( String type )
111     {
112         PersistenceManager pm = getPersistenceManager();
113 
114         Transaction tx = pm.currentTransaction();
115 
116         try
117         {
118             tx.begin();
119 
120             Extent extent = pm.getExtent( DistributedDirectoryPurgeConfiguration.class, true );
121 
122             Query query = pm.newQuery( extent );
123 
124             query.declareImports( "import java.lang.String" );
125 
126             query.declareParameters( "String type" );
127 
128             query.setFilter( "this.directoryType == type" );
129 
130             List result = (List) query.execute( type );
131 
132             return result == null ? Collections.EMPTY_LIST : (List) pm.detachCopyAll( result );
133         }
134         finally
135         {
136             tx.commit();
137 
138             rollback( tx );
139         }
140     }
141 
142     public DistributedDirectoryPurgeConfiguration getDistributedDirectoryPurgeConfiguration( int configurationId )
143         throws ContinuumStoreException
144     {
145         return (DistributedDirectoryPurgeConfiguration) getObjectById( DistributedDirectoryPurgeConfiguration.class,
146                                                                        configurationId );
147     }
148 
149     public DistributedDirectoryPurgeConfiguration addDistributedDirectoryPurgeConfiguration(
150         DistributedDirectoryPurgeConfiguration purgeConfiguration )
151         throws ContinuumStoreException
152     {
153         return (DistributedDirectoryPurgeConfiguration) addObject( purgeConfiguration );
154     }
155 
156     public void updateDistributedDirectoryPurgeConfiguration(
157         DistributedDirectoryPurgeConfiguration purgeConfiguration )
158         throws ContinuumStoreException
159     {
160         updateObject( purgeConfiguration );
161     }
162 
163     public void removeDistributedDirectoryPurgeConfiguration(
164         DistributedDirectoryPurgeConfiguration purgeConfiguration )
165         throws ContinuumStoreException
166     {
167         removeObject( purgeConfiguration );
168     }
169 }