Archived
0

fix search if source don't have markets

This commit is contained in:
iMoHax
2016-03-03 15:32:47 +03:00
parent 0a0ae48403
commit df87b9e95f
3 changed files with 13 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ru.trader.core.Offer; import ru.trader.core.Offer;
import ru.trader.core.Order; import ru.trader.core.Order;
import ru.trader.core.SERVICE_TYPE;
import ru.trader.core.Vendor; import ru.trader.core.Vendor;
import java.util.ArrayList; import java.util.ArrayList;
@@ -58,4 +59,8 @@ public class MarketUtils {
} }
return orders; return orders;
} }
public static boolean hasMarket(Vendor vendor) {
return vendor.has(SERVICE_TYPE.MARKET) || vendor.has(SERVICE_TYPE.BLACK_MARKET);
}
} }

View File

@@ -73,7 +73,10 @@ public class VendorsCrawler extends Crawler<Vendor> {
protected boolean check(Edge<Vendor> e){ protected boolean check(Edge<Vendor> e){
VendorsGraph.VendorsBuildEdge edge = (VendorsGraph.VendorsBuildEdge) e; VendorsGraph.VendorsBuildEdge edge = (VendorsGraph.VendorsBuildEdge) e;
return fuel <= edge.getMaxFuel() && (fuel >= edge.getMinFuel() || edge.getSource().getEntry().canRefill()) 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) { protected VendorsEdge wrap(Edge<Vendor> e) {

View File

@@ -701,6 +701,10 @@ public class Crawler<T> {
return size; return size;
} }
public boolean isStart(){
return head == null && edge == null;
}
@Override @Override
public String toString() { public String toString() {
final StringBuilder sb = new StringBuilder("{"); final StringBuilder sb = new StringBuilder("{");