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
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 }