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.maven.continuum.model.project.BuildDefinition;
23 import org.apache.maven.continuum.model.project.Project;
24 import org.apache.maven.continuum.model.project.ProjectGroup;
25 import org.apache.maven.continuum.store.ContinuumStoreException;
26
27 import java.util.List;
28 import java.util.Map;
29
30 /**
31 * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
32 * @version $Id: BuildDefinitionDao.java 751594 2009-03-09 06:07:19Z evenisse $
33 */
34 public interface BuildDefinitionDao
35 {
36 BuildDefinition getBuildDefinition( int buildDefinitionId )
37 throws ContinuumStoreException;
38
39 void removeBuildDefinition( BuildDefinition buildDefinition )
40 throws ContinuumStoreException;
41
42 BuildDefinition storeBuildDefinition( BuildDefinition buildDefinition )
43 throws ContinuumStoreException;
44
45 BuildDefinition addBuildDefinition( BuildDefinition buildDefinition )
46 throws ContinuumStoreException;
47
48 List<BuildDefinition> getAllBuildDefinitions()
49 throws ContinuumStoreException;
50
51 /**
52 * Returns the default build definition of all projects. The key is the project id and the value is the build
53 * definition id.
54 *
55 * @return a map of all default build definitions
56 */
57 Map<Integer, Integer> getDefaultBuildDefinitions();
58
59 /**
60 * returns the default build definitions for the project group and there
61 * should always be at least one declared.
62 *
63 * @param projectGroupId The project group id
64 * @return The list of default build definitions
65 * @throws ContinuumStoreException if the build definitions list can't be obtain
66 */
67 List<BuildDefinition> getDefaultBuildDefinitionsForProjectGroup( int projectGroupId )
68 throws ContinuumStoreException;
69
70 /**
71 * returns the default build definitions for the project group and there
72 * should always be at least one declared.
73 *
74 * @param projectGroup The project group
75 * @return The list of default build definitions
76 * @throws ContinuumStoreException if the build definitions list can't be obtain
77 */
78 List<BuildDefinition> getDefaultBuildDefinitionsForProjectGroup( ProjectGroup projectGroup )
79 throws ContinuumStoreException;
80
81 /**
82 * returns the default build definition of the project, if the project
83 * doesn't have on declared the default of the project group will be
84 * returned <p/> this should be the most common usage of the default build
85 * definition accessing methods
86 *
87 * @param projectId
88 * @return
89 * @throws ContinuumStoreException
90 * @throws org.apache.maven.continuum.store.ContinuumObjectNotFoundException
91 *
92 */
93 BuildDefinition getDefaultBuildDefinitionForProject( int projectId )
94 throws ContinuumStoreException;
95
96 /**
97 * returns the default build definition for the project without consulting
98 * the project group
99 *
100 * @param project
101 * @return
102 * @throws ContinuumStoreException
103 * @throws org.apache.maven.continuum.store.ContinuumObjectNotFoundException
104 *
105 */
106 BuildDefinition getDefaultBuildDefinitionForProject( Project project )
107 throws ContinuumStoreException;
108
109 /**
110 * returns the default build definition of the project, if the project
111 * doesn't have on declared the default of the project group will be
112 * returned <p/> this should be the most common usage of the default build
113 * definition accessing methods
114 *
115 * @param projectId
116 * @return
117 * @throws ContinuumStoreException
118 * @throws org.apache.maven.continuum.store.ContinuumObjectNotFoundException
119 *
120 */
121 BuildDefinition getDefaultBuildDefinition( int projectId )
122 throws ContinuumStoreException;
123
124 List<BuildDefinition> getAllTemplates()
125 throws ContinuumStoreException;
126
127 List<BuildDefinition> getBuildDefinitionsBySchedule( int scheduleId );
128 }