+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2010, 2012 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Sonatype, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.aether.metadata;
-
-import java.io.File;
-import java.util.Map;
-
-/**
- * A basic metadata instance. <em>Note:</em> Instances of this class are immutable and the exposed mutators return new
- * objects rather than changing the current instance.
- */
-public final class DefaultMetadata
- extends AbstractMetadata
-{
-
- private final String groupId;
-
- private final String artifactId;
-
- private final String version;
-
- private final String type;
-
- private final Nature nature;
-
- private final File file;
-
- private final Map<String, String> properties;
-
- /**
- * Creates a new metadata for the repository root with the specific type and nature.
- *
- * @param type The type of the metadata, e.g. "maven-metadata.xml", may be {@code null}.
- * @param nature The nature of the metadata, must not be {@code null}.
- */
- public DefaultMetadata( String type, Nature nature )
- {
- this( "", "", "", type, nature, null, (File) null );
- }
-
- /**
- * Creates a new metadata for the groupId level with the specific type and nature.
- *
- * @param groupId The group identifier to which this metadata applies, may be {@code null}.
- * @param type The type of the metadata, e.g. "maven-metadata.xml", may be {@code null}.
- * @param nature The nature of the metadata, must not be {@code null}.
- */
- public DefaultMetadata( String groupId, String type, Nature nature )
- {
- this( groupId, "", "", type, nature, null, (File) null );
- }
-
- /**
- * Creates a new metadata for the groupId:artifactId level with the specific type and nature.
- *
- * @param groupId The group identifier to which this metadata applies, may be {@code null}.
- * @param artifactId The artifact identifier to which this metadata applies, may be {@code null}.
- * @param type The type of the metadata, e.g. "maven-metadata.xml", may be {@code null}.
- * @param nature The nature of the metadata, must not be {@code null}.
- */
- public DefaultMetadata( String groupId, String artifactId, String type, Nature nature )
- {
- this( groupId, artifactId, "", type, nature, null, (File) null );
- }
-
- /**
- * Creates a new metadata for the groupId:artifactId:version level with the specific type and nature.
- *
- * @param groupId The group identifier to which this metadata applies, may be {@code null}.
- * @param artifactId The artifact identifier to which this metadata applies, may be {@code null}.
- * @param version The version to which this metadata applies, may be {@code null}.
- * @param type The type of the metadata, e.g. "maven-metadata.xml", may be {@code null}.
- * @param nature The nature of the metadata, must not be {@code null}.
- */
- public DefaultMetadata( String groupId, String artifactId, String version, String type, Nature nature )
- {
- this( groupId, artifactId, version, type, nature, null, (File) null );
- }
-
- /**
- * Creates a new metadata for the groupId:artifactId:version level with the specific type and nature.
- *
- * @param groupId The group identifier to which this metadata applies, may be {@code null}.
- * @param artifactId The artifact identifier to which this metadata applies, may be {@code null}.
- * @param version The version to which this metadata applies, may be {@code null}.
- * @param type The type of the metadata, e.g. "maven-metadata.xml", may be {@code null}.
- * @param nature The nature of the metadata, must not be {@code null}.
- * @param file The resolved file of the metadata, may be {@code null}.
- */
- public DefaultMetadata( String groupId, String artifactId, String version, String type, Nature nature, File file )
- {
- this( groupId, artifactId, version, type, nature, null, file );
- }
-
- /**
- * Creates a new metadata for the groupId:artifactId:version level with the specific type and nature.
- *
- * @param groupId The group identifier to which this metadata applies, may be {@code null}.
- * @param artifactId The artifact identifier to which this metadata applies, may be {@code null}.
- * @param version The version to which this metadata applies, may be {@code null}.
- * @param type The type of the metadata, e.g. "maven-metadata.xml", may be {@code null}.
- * @param nature The nature of the metadata, must not be {@code null}.
- * @param properties The properties of the metadata, may be {@code null} if none.
- * @param file The resolved file of the metadata, may be {@code null}.
- */
- public DefaultMetadata( String groupId, String artifactId, String version, String type, Nature nature,
- Map<String, String> properties, File file )
- {
- this.groupId = emptify( groupId );
- this.artifactId = emptify( artifactId );
- this.version = emptify( version );
- this.type = emptify( type );
- if ( nature == null )
- {
- throw new IllegalArgumentException( "metadata nature was not specified" );
- }
- this.nature = nature;
- this.file = file;
- this.properties = copyProperties( properties );
- }
-
- DefaultMetadata( String groupId, String artifactId, String version, String type, Nature nature, File file,
- Map<String, String> properties )
- {
- // NOTE: This constructor assumes immutability of the provided properties, for internal use only
- this.groupId = emptify( groupId );
- this.artifactId = emptify( artifactId );
- this.version = emptify( version );
- this.type = emptify( type );
- this.nature = nature;
- this.file = file;
- this.properties = properties;
- }
-
- private static String emptify( String str )
- {
- return ( str == null ) ? "" : str;
- }
-
- public String getGroupId()
- {
- return groupId;
- }
-
- public String getArtifactId()
- {
- return artifactId;
- }
-
- public String getVersion()
- {
- return version;
- }
-
- public String getType()
- {
- return type;
- }
-
- public Nature getNature()
- {
- return nature;
- }
-
- public File getFile()
- {
- return file;
- }
-
- public Map<String, String> getProperties()
- {
- return properties;
- }
-
-}