]> source.dussan.org Git - archiva.git/blob
ef7249664bc447bf59d473fdc3076bb7c55dfae9
[archiva.git] /
1 package org.apache.archiva.repository.content;
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.archiva.repository.RepositoryContent;
23 import org.apache.archiva.repository.storage.StorageAsset;
24
25 /**
26  *
27  * The project is the container for several versions each with different artifacts.
28  *
29  * <pre>
30  * project +--> version 1 + ->  artifact 1
31  *         |              |
32  *         |              + ->  artifact 2
33  *         |
34  *         +--> version 2 ----> artifact 3
35  * </pre>
36  *
37  * Implementations must provide proper hash and equals methods.
38  *
39  * @author Martin Stockhammer <martin_s@apache.org>
40  */
41 public interface Project extends ContentItem
42 {
43
44     /**
45      * The namespace of the project
46      * @return the namespace
47      */
48     String getNamespace();
49
50     /**
51      * The id of the project
52      * @return the project id
53      */
54     String getId();
55
56     /**
57      * The repository this project is part of.
58      * @return the repository content
59      */
60     RepositoryContent getRepository();
61
62     /**
63      * Returns the asset that corresponds to this project.
64      * It depends of the implementation, if the asset provides additional information about the
65      * project or not.
66      *
67      * @return the repository asset that represents this project
68      */
69     StorageAsset getAsset();
70
71 }