package org.jboss.windup.rules.apps.java.dependencyreport; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.frames.Adjacency; import com.tinkerpop.frames.Incidence; import com.tinkerpop.frames.Property; import com.tinkerpop.frames.modules.typedgraph.TypeValue; import org.jboss.windup.graph.model.ArchiveModel; import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.WindupVertexFrame; /** * Contains a links to dependent archives, grouped by their SHA1 value. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ @TypeValue(DependencyReportDependencyGroupModel.TYPE) public interface DependencyReportDependencyGroupModel extends WindupVertexFrame { String TYPE = "depReportGroup"; String DEPENDENCY_SHA1 = "depSHA1"; String DEPENDENCY_GROUP_TO_ARCHIVE = "dependencyGroupToArchive"; String CANONICAL_PROJECT = "canonicalProject"; /** * Contains the SHA1 value of every archive in this group. */ @Property(DEPENDENCY_SHA1) String getSHA1(); /** * Contains the SHA1 value of every archive in this group. */ @Property(DEPENDENCY_SHA1) void setSHA1(String sha1); /** * Contains the canonical project for this dependency group. */ @Adjacency(label = CANONICAL_PROJECT, direction = Direction.OUT) ProjectModel getCanonicalProject(); /** * Contains the canonical project for this dependency group. */ @Adjacency(label = CANONICAL_PROJECT, direction = Direction.OUT) void setCanonicalProject(ProjectModel project); /** * Contains links to the archives that match this SHA1 hash. */ @Incidence(label = DEPENDENCY_GROUP_TO_ARCHIVE, direction = Direction.OUT) Iterable<DependencyReportToArchiveEdgeModel> getArchives(); /** * Contains links to the archives that match this SHA1 hash. */ @Incidence(label = DEPENDENCY_GROUP_TO_ARCHIVE, direction = Direction.OUT) DependencyReportToArchiveEdgeModel addArchiveModel(ArchiveModel archiveModel); }