blob: 8d03a31f6ded8017e2076ccb8b4178fc175d43b5 [file] [log] [blame]
package org.apache.maven.repository.metadata;
/*
* 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.
*/
import java.util.Collection;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactScopeEnum;
/**
* Artifact Metadata that is resolved independent of Artifact itself.
*
* @author <a href="oleg@codehaus.org">Oleg Gusakov</a>
*/
public class ArtifactMetadata
{
/**
* standard glorified artifact coordinates
*/
protected String groupId;
protected String artifactId;
protected String version;
protected String type;
protected ArtifactScopeEnum artifactScope;
protected String classifier;
/**
* explanation: why this MD was chosen over its siblings
* in the resulting structure (classpath for now)
*/
protected String why;
/** dependencies of the artifact behind this metadata */
protected Collection<ArtifactMetadata> dependencies;
/** metadata URI */
protected String uri;
/** 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;
//------------------------------------------------------------------
/**
*
*/
public ArtifactMetadata( String name )
{
if ( name == null )
{
return;
}
int ind1 = name.indexOf( ':' );
int ind2 = name.lastIndexOf( ':' );
if ( ind1 == -1 || ind2 == -1 )
{
return;
}
this.groupId = name.substring( 0, ind1 );
if ( ind1 == ind2 )
{
this.artifactId = name.substring( ind1 + 1 );
}
else
{
this.artifactId = name.substring( ind1 + 1, ind2 );
this.version = name.substring( ind2 + 1 );
}
}
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 );
}
@SuppressWarnings( "checkstyle:parameternumber" )
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;
}
@SuppressWarnings( "checkstyle:parameternumber" )
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 )
{
/*
if ( af != null )
{
init( af );
}
*/
}
//------------------------------------------------------------------
// public void init( ArtifactMetadata af )
// {
// setGroupId( af.getGroupId() );
// setArtifactId( af.getArtifactId() );
// setVersion( af.getVersion() );
// setType( af.getType() );
// setScope( af.getScope() );
// setClassifier( af.getClassifier() );
// //setUri( af.getDownloadUrl() );
//
// this.resolved = af.isResolved();
// }
@Override
public String toString()
{
return groupId + ":" + artifactId + ":" + version;
}
public String toDomainString()
{
return groupId + ":" + artifactId;
}
public String getGroupId()
{
return groupId;
}
public void setGroupId( String groupId )
{
this.groupId = groupId;
}
public String getArtifactId()
{
return artifactId;
}
public void setArtifactId( String name )
{
this.artifactId = name;
}
public String getVersion()
{
return version;
}
public void setVersion( String version )
{
this.version = version;
}
public String getType()
{
return type;
}
public String getCheckedType()
{
return type == null ? "jar" : type;
}
public void setType( String type )
{
this.type = type;
}
public ArtifactScopeEnum getArtifactScope()
{
return artifactScope == null ? ArtifactScopeEnum.DEFAULT_SCOPE : artifactScope;
}
public void setArtifactScope( ArtifactScopeEnum artifactScope )
{
this.artifactScope = artifactScope;
}
public void setScope( String scope )
{
this.artifactScope = scope == null ? ArtifactScopeEnum.DEFAULT_SCOPE : ArtifactScopeEnum.valueOf( scope );
}
public String getClassifier()
{
return classifier;
}
public void setClassifier( String classifier )
{
this.classifier = classifier;
}
public boolean isResolved()
{
return resolved;
}
public void setResolved( boolean resolved )
{
this.resolved = resolved;
}
public String getUri()
{
return uri;
}
public void setUri( String uri )
{
this.uri = uri;
}
public String getScope()
{
return getArtifactScope().getScope();
}
public ArtifactScopeEnum getScopeAsEnum()
{
return artifactScope == null ? ArtifactScopeEnum.DEFAULT_SCOPE : artifactScope;
}
public boolean isArtifactExists()
{
return artifactExists;
}
public void setArtifactExists( boolean artifactExists )
{
this.artifactExists = artifactExists;
}
public Collection<ArtifactMetadata> getDependencies()
{
return dependencies;
}
public void setDependencies( Collection<ArtifactMetadata> 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 String getDependencyConflictId()
{
return groupId + ":" + artifactId;
}
}