1 package org.sonatype.aether.artifact;
2
3 /*******************************************************************************
4 * Copyright (c) 2010-2011 Sonatype, Inc.
5 * All rights reserved. This program and the accompanying materials
6 * are made available under the terms of the Eclipse Public License v1.0
7 * which accompanies this distribution, and is available at
8 * http://www.eclipse.org/legal/epl-v10.html
9 *******************************************************************************/
10
11 import java.util.Map;
12
13 /**
14 * An artifact type describing artifact characteristics that are common for certain artifacts. Artifact types are a
15 * means to simplify the description of an artifact by referring to an artifact type instead of specifying the various
16 * properties individually.
17 *
18 * @author Benjamin Bentmann
19 */
20 public interface ArtifactType
21 {
22
23 /**
24 * Gets the identifier of this type, e.g. "maven-plugin" or "test-jar".
25 *
26 * @return The identifier of this type, never {@code null}.
27 */
28 String getId();
29
30 /**
31 * Gets the file extension to use for artifacts of this type (unless explicitly overridden by the artifact).
32 *
33 * @return The file extension, never {@code null}.
34 */
35 String getExtension();
36
37 /**
38 * Gets the classifier to use for artifacts of this type (unless explicitly overridden by the artifact).
39 *
40 * @return The classifier or an empty string if none, never {@code null}.
41 */
42 String getClassifier();
43
44 /**
45 * Gets the properties to use for artifacts of this type (unless explicitly overridden by the artifact).
46 *
47 * @return The properties, never {@code null}.
48 */
49 Map<String, String> getProperties();
50
51 }