fix search if source don't have markets
This commit is contained in:
@@ -4,6 +4,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.trader.core.Offer;
|
||||
import ru.trader.core.Order;
|
||||
import ru.trader.core.SERVICE_TYPE;
|
||||
import ru.trader.core.Vendor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -58,4 +59,8 @@ public class MarketUtils {
|
||||
}
|
||||
return orders;
|
||||
}
|
||||
|
||||
public static boolean hasMarket(Vendor vendor) {
|
||||
return vendor.has(SERVICE_TYPE.MARKET) || vendor.has(SERVICE_TYPE.BLACK_MARKET);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,10 @@ public class VendorsCrawler extends Crawler<Vendor> {
|
||||
protected boolean check(Edge<Vendor> e){
|
||||
VendorsGraph.VendorsBuildEdge edge = (VendorsGraph.VendorsBuildEdge) e;
|
||||
return fuel <= edge.getMaxFuel() && (fuel >= edge.getMinFuel() || edge.getSource().getEntry().canRefill())
|
||||
&& (edge.getProfit() > 0 || VendorsCrawler.this.isContent(edge, this));
|
||||
&& (edge.getProfit() > 0 || VendorsCrawler.this.isContent(edge, this)
|
||||
// adding all edges if this start entry and don't have market
|
||||
|| (isStart() && !MarketUtils.hasMarket(vertex.getEntry()))
|
||||
);
|
||||
}
|
||||
|
||||
protected VendorsEdge wrap(Edge<Vendor> e) {
|
||||
|
||||
@@ -701,6 +701,10 @@ public class Crawler<T> {
|
||||
return size;
|
||||
}
|
||||
|
||||
public boolean isStart(){
|
||||
return head == null && edge == null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuilder sb = new StringBuilder("{");
|
||||
|
||||
Reference in New Issue
Block a user