blob: 5c1b35c124a9918d9c4b26a5e71aa2d05bfb1f08 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.maven.mercury.artifact;
import java.util.List;
/**
* Artifact Metadata that is resolved independent of Artifact itself. It's
* built on top of ArtifactBasicMetadata
*
* @author Oleg Gusakov
* @version $Id$
*/
public class ArtifactMetadata
extends ArtifactBasicMetadata
{
// in addition to basic coordinates
private boolean release;
/**
* explanation: why this MD was chosen over it's siblings
* in the resulting structure (classpath for now)
*/
protected String why;
/** dependencies of the artifact behind this metadata */
protected List<ArtifactBasicMetadata> dependencies;
/** is metadata found anywhere */
protected boolean resolved = false;
/** does the actual artifact for this metadata exists */
protected boolean artifactExists = false;
/** artifact URI */
protected String artifactUri;
/** error message */
private String error;
/**
* for testing - required for mock MetadataSource
*/
public ArtifactMetadata()
{
}
//------------------------------------------------------------------
/**
* group:artifact:version:classifier:packaging
*/
public ArtifactMetadata( String name )
{
if( name == null )
return;
String [] tokens = name.split(":");
if( tokens == null || tokens.length < 1 )
return;
int count = tokens.length;
this.groupId = nullify( tokens[0] );
if( count > 1 )
this.artifactId = nullify( tokens[1] );
if( count > 2 )
this.version = nullify( tokens[2] );
if( count > 3 )
this.classifier = nullify( tokens[3] );
if( count > 4 )
this.type = nullify( tokens[4] );
}
private static final String nullify( String s )
{
if( s == null || s.length() < 1 )
return null;
return s;
}
public ArtifactMetadata( String groupId, String name, String version )
{
this( groupId, name, version, null );
}
public ArtifactMetadata( String groupId, String name, String version, String type )
{
this( groupId, name, version, type, null );
}
public ArtifactMetadata( String groupId, String name, String version, String type, ArtifactScopeEnum artifactScope )
{
this( groupId, name, version, type, artifactScope, null );
}
public ArtifactMetadata( String groupId, String name, String version, String type, ArtifactScopeEnum artifactScope, String classifier )
{
this( groupId, name, version, type, artifactScope, classifier, null );
}
public ArtifactMetadata( String groupId, String name, String version, String type, ArtifactScopeEnum artifactScope, String classifier, String artifactUri )
{
this( groupId, name, version, type, artifactScope, classifier, artifactUri, null, true, null );
}
public ArtifactMetadata( String groupId, String name, String version, String type, ArtifactScopeEnum artifactScope, String classifier, String artifactUri, String why, boolean resolved,
String error )
{
this.groupId = groupId;
this.artifactId = name;
this.version = version;
this.type = type;
this.artifactScope = artifactScope;
this.classifier = classifier;
this.artifactUri = artifactUri;
this.why = why;
this.resolved = resolved;
this.error = error;
}
public ArtifactMetadata( ArtifactBasicMetadata bmd )
{
this( bmd.getGroupId(), bmd.getArtifactId(), bmd.getVersion(), bmd.getType(), null, bmd.getClassifier() );
}
public ArtifactMetadata( String groupId, String name, String version, String type, String scopeString, String classifier, String artifactUri, String why, boolean resolved, String error )
{
this( groupId, name, version, type, scopeString == null ? ArtifactScopeEnum.DEFAULT_SCOPE : ArtifactScopeEnum.valueOf( scopeString ), classifier, artifactUri, why, resolved, error );
}
public ArtifactMetadata( Artifact af )
{
}
public boolean isResolved()
{
return resolved;
}
public void setResolved( boolean resolved )
{
this.resolved = resolved;
}
public boolean isArtifactExists()
{
return artifactExists;
}
public void setArtifactExists( boolean artifactExists )
{
this.artifactExists = artifactExists;
}
public List<ArtifactBasicMetadata> getDependencies()
{
return dependencies;
}
public void setDependencies( List<ArtifactBasicMetadata> dependencies )
{
this.dependencies = dependencies;
}
public String getArtifactUri()
{
return artifactUri;
}
public void setArtifactUri( String artifactUri )
{
this.artifactUri = artifactUri;
}
public String getWhy()
{
return why;
}
public void setWhy( String why )
{
this.why = why;
}
public String getError()
{
return error;
}
public void setError( String error )
{
this.error = error;
}
public boolean isError()
{
return error == null;
}
public void setRelease( boolean release )
{
this.release = release;
}
public boolean isRelease()
{
return release;
}
}