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;
16  
17  import org.figure8.join.businessobjects.commons.Release;
18  /**
19   * An Artifact is an object resulting from human or automated activity.
20   * Thus in Join, an artifact represents a piece of work (realized by your
21   * development team or your buid process) that you want to trace and track.
22   * <br/>
23   * In order to organize this tracking, artifacts will have common attributes
24   * such as : the release they have been realized for, a version identifier,
25   * a category identifier (for types artifact) and also a unique identifier.
26   * <br/>
27   * External process using artifacts (such as repository services) shall not
28   * been allowed to modify an artifact informations without knowing its real
29   * structure. Thus this interface only exposes getter style methods ...
30   * @author <a href="mailto:laurent.broudoux@free.fr">Laurent Broudoux</a>
31   * @version $Revision: 1.3 $
32   */
33  public interface Artifact{
34  
35     // Public -------------------------------------------------------------------
36  
37     /**
38      * Retrieve the unique identifier of this artifact. Artifact identifiers
39      * should -at least- be unique for same artifact implementation. Correct
40      * implementations will guarantee id unicity amongst all artifacts
41      * @return This artifact unique identifier
42      */
43     public abstract String getUniqueId();
44  
45     /**
46      * Retrieve the version information on this artifact.
47      * @return Version information as character string
48      */
49     public abstract String getVersionInfo();
50  
51     /**
52      * Return the category information on this artifact (or null
53      * is this artifact implementation is not typed).
54      * @return The category information as character string
55      */
56     public abstract String getCategoryInfo();
57  
58     /**
59      * Retrieve the release that has cause this artifact creation
60      * @return The release this artifact has been realized for
61      */
62     public abstract Release getRelease();
63  }