View Javadoc

1   /**
2    * Copyright 2005-2006 the original author or authors.
3    *
4    * Licensed under the Gnu General Pubic License, Version 2.0 (the
5    * "License"); you may not use this file except in compliance with
6    * the License. You may obtain a copy of the License at
7    *
8    *      http://www.opensource.org/licenses/gpl-license.php
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13   * See the Gnu General Public License for more details.
14   */
15  package org.figure8.join.businessobjects.artifact.persistence;
16  
17  import org.figure8.join.core.persistence.ObjectDao;
18  import org.figure8.join.businessobjects.commons.Release;
19  import org.figure8.join.businessobjects.artifact.Component;
20  import org.figure8.join.businessobjects.artifact.ComponentType;
21  
22  import java.util.List;
23  /**
24   * Data Access interface for Component business objects.
25   * @author <a href="mailto:laurent.broudoux@free.fr">Laurent Broudoux</a>
26   * @version $Revision: 1.2 $
27   */
28  public interface ComponentDao extends ObjectDao{
29     
30     // Public -------------------------------------------------------------------
31  
32     /**
33      * Retrieve the component having the specified key
34      * @param key The key of component to retrieve
35      * @return The component having this key or null if no one matches
36      */
37     public abstract Component getComponent(String key);
38  
39     /**
40      * Retrieve components of specified type generated by a specified release
41      * @param type The components type
42      * @param release The release components have been generated for
43      * @return A list of <code>org.figure8.join.businessobjects.artifact.Component</code>s
44      */
45     public abstract List getComponentsByRelease(ComponentType type, Release release);
46     
47     /**
48      * Retrieve components of specified type contained by a specified release
49      * @param type The components type
50      * @param release The release containing returned components
51      * @return A list of <code>org.figure8.join.businessobjects.artifact.Component</code>s
52      */
53     public abstract List getComponentsInRelease(ComponentType type, Release release);
54  }