package org.jboss.windup.rules.apps.java.archives.model;
import com.tinkerpop.blueprints.Vertex;
import org.jboss.forge.addon.dependencies.Coordinate;
import org.jboss.windup.graph.model.WindupVertexFrame;
import com.tinkerpop.frames.Property;
import com.tinkerpop.frames.modules.javahandler.JavaHandler;
import com.tinkerpop.frames.modules.javahandler.JavaHandlerContext;
import com.tinkerpop.frames.modules.typedgraph.TypeValue;
import org.apache.commons.lang.StringUtils;
/**
* Represents a {@link Coordinate} for an {@link IdentifiedArchiveModel}.
*
* @author <a href="mailto:ozizka@redhat.com">Ondrej Zizka</a>
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
@TypeValue(ArchiveCoordinateModel.TYPE)
public interface ArchiveCoordinateModel extends WindupVertexFrame
{
public static final String TYPE = "coordinate:";
public static final String GROUP_ID = TYPE + "groupId";
public static final String ARTIFACT_ID = TYPE + "artifactId";
public static final String PACKAGING = TYPE + "packaging";
public static final String CLASSIFIER = TYPE + "classifier";
public static final String VERSION = TYPE + "version";
@Property(GROUP_ID)
String getGroupId();
@Property(GROUP_ID)
ArchiveCoordinateModel setGroupId(String groupId);
@Property(ARTIFACT_ID)
String getArtifactId();
@Property(ARTIFACT_ID)
ArchiveCoordinateModel setArtifactId(String artifactId);
@Property(PACKAGING)
String getPackaging();
@Property(PACKAGING)
ArchiveCoordinateModel setPackaging(String packaging);
@Property(CLASSIFIER)
String getClassifier();
@Property(CLASSIFIER)
ArchiveCoordinateModel setClassifier(String classifier);
@Property(VERSION)
String getVersion();
@Property(VERSION)
ArchiveCoordinateModel setVersion(String version);
/**
* @return Formatted as "G:A:V:C:P"
*/
@JavaHandler
String toString();
public abstract class Impl implements ArchiveCoordinateModel, JavaHandlerContext<Vertex>
{
public String toString(){
return String.format("%s:%s:%s:%s:%s", this.getGroupId(), this.getArtifactId(), this.getVersion(),
StringUtils.defaultString(this.getClassifier()), this.getPackaging());
}
}
}