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 }