package org.jboss.windup.rules.apps.mavenize;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.lucene.document.Document;
import org.jboss.windup.maven.nexusindexer.ZipUtil;
import org.jboss.windup.maven.nexusindexer.client.DocTo;
/**
* Returns the artifacts which are known to contain given package, using pre-created Lucene index.
* See the nexus-repository-indexer project.
*
* @author <a href="http://ondra.zizka.cz/">Ondrej Zizka, zizka@seznam.cz</a>
*/
public class LucenePackageToArtifactMapper extends org.jboss.windup.maven.nexusindexer.client.LuceneIndexServiceBase implements PackageToArtifactsMapper
{
public LucenePackageToArtifactMapper(File directory)
{
super(directory);
}
@Override
public List<MavenCoord> getArtifactsContainingPackage(String pkg)
{
final List<MavenCoord> artifacts = new ArrayList<>(64);
this.findByField(DocTo.Fields.PACKAGE, pkg, 100, new ZipUtil.Visitor<Document>()
{
@Override
public void visit(Document doc)
{
MavenCoord coord = MavenCoord.fromGAVPC(doc.get(DocTo.Fields.COORD_GAVCP));
artifacts.add(coord);
}
});
return artifacts;
}
}