/** * */ package ecologylab.bigsemantics.collecting; import ecologylab.bigsemantics.metadata.builtins.Document; import ecologylab.bigsemantics.metadata.builtins.DocumentClosure; import ecologylab.bigsemantics.model.text.ITermVector; public class DownloadContainerWeightingStrategy extends ContainerWeightingStrategy { private static final double RECYCLED_WEIGHT = - Double.MAX_VALUE / 2; private static final double ALREADY_DOWNLOADING_WEIGHT = -0.5; public DownloadContainerWeightingStrategy ( ITermVector v ) { super(v); } @Override public double getWeight (DocumentClosure e ) { SemanticsSite site = e.getSite(); Document metadata = e.getDocument(); if (metadata == null) { error("null metadata! yikes!!! " + e.getInitialPURL()); return RECYCLED_WEIGHT; } boolean isDefaultMetadata = Document.class == metadata.getClass(); double weight = (site == null || (isDefaultMetadata && site.hasQueuedDownloadables())) ? ALREADY_DOWNLOADING_WEIGHT : super.getWeight(e); // e.cachedWeight = weight; return weight; } }