Greatly speedup of work with station list and with wholl application at all, as a result
This commit is contained in:
@@ -10,7 +10,7 @@ import java.util.stream.Stream;
|
|||||||
public class SimpleMarket extends AbstractMarket {
|
public class SimpleMarket extends AbstractMarket {
|
||||||
private final static Logger LOG = LoggerFactory.getLogger(SimpleMarket.class);
|
private final static Logger LOG = LoggerFactory.getLogger(SimpleMarket.class);
|
||||||
|
|
||||||
protected Set<Place> systems;
|
protected Map<String, Place> systems;
|
||||||
protected List<Item> items;
|
protected List<Item> items;
|
||||||
protected List<Group> groups;
|
protected List<Group> groups;
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ public class SimpleMarket extends AbstractMarket {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void init() {
|
protected void init() {
|
||||||
systems = new TreeSet<>();
|
systems = new TreeMap<>();
|
||||||
items = new ArrayList<>();
|
items = new ArrayList<>();
|
||||||
groups = new ArrayList<>();
|
groups = new ArrayList<>();
|
||||||
}
|
}
|
||||||
@@ -57,6 +57,11 @@ public class SimpleMarket extends AbstractMarket {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Place get(String name) {
|
||||||
|
return systems.get(name.toUpperCase());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Place createPlace(String name, double x, double y, double z) {
|
protected Place createPlace(String name, double x, double y, double z) {
|
||||||
return new SimplePlace(name, x, y, z);
|
return new SimplePlace(name, x, y, z);
|
||||||
@@ -74,7 +79,7 @@ public class SimpleMarket extends AbstractMarket {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void addPlace(Place place) {
|
protected void addPlace(Place place) {
|
||||||
systems.add(place);
|
systems.put(place.getName().toUpperCase(), place);
|
||||||
for (Vendor vendor : place.get()) {
|
for (Vendor vendor : place.get()) {
|
||||||
onAdd(vendor);
|
onAdd(vendor);
|
||||||
}
|
}
|
||||||
@@ -82,7 +87,7 @@ public class SimpleMarket extends AbstractMarket {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void removePlace(Place place) {
|
protected void removePlace(Place place) {
|
||||||
systems.remove(place);
|
systems.remove(place.getName().toUpperCase());
|
||||||
for (Vendor vendor : place.get()) {
|
for (Vendor vendor : place.get()) {
|
||||||
onRemove(vendor);
|
onRemove(vendor);
|
||||||
}
|
}
|
||||||
@@ -122,7 +127,7 @@ public class SimpleMarket extends AbstractMarket {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<Place> get() {
|
public Collection<Place> get() {
|
||||||
return systems;
|
return systems.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -191,9 +196,9 @@ public class SimpleMarket extends AbstractMarket {
|
|||||||
@Override
|
@Override
|
||||||
protected void updateName(AbstractPlace place, String name) {
|
protected void updateName(AbstractPlace place, String name) {
|
||||||
LOG.trace("Replace system {} on change name", place);
|
LOG.trace("Replace system {} on change name", place);
|
||||||
systems.remove(place);
|
systems.remove(place.getName().toUpperCase());
|
||||||
super.updateName(place, name);
|
super.updateName(place, name);
|
||||||
systems.add(place);
|
systems.put(place.getName().toUpperCase(), place);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -213,7 +218,7 @@ public class SimpleMarket extends AbstractMarket {
|
|||||||
Map<Item, Collection<Offer>> sellOffers = new HashMap<>();
|
Map<Item, Collection<Offer>> sellOffers = new HashMap<>();
|
||||||
Map<Item, Collection<Offer>> buyOffers = new HashMap<>();
|
Map<Item, Collection<Offer>> buyOffers = new HashMap<>();
|
||||||
|
|
||||||
systems.stream().flatMap(s -> s.get().stream())
|
systems.values().stream().flatMap(s -> s.get().stream())
|
||||||
.flatMap(v -> Stream.concat(v.getAllSellOffers().stream(), v.getAllBuyOffers().stream()))
|
.flatMap(v -> Stream.concat(v.getAllSellOffers().stream(), v.getAllBuyOffers().stream()))
|
||||||
.forEach(o -> {
|
.forEach(o -> {
|
||||||
Map<Item, Collection<Offer>> m = o.getType() == OFFER_TYPE.SELL ? sellOffers : buyOffers;
|
Map<Item, Collection<Offer>> m = o.getType() == OFFER_TYPE.SELL ? sellOffers : buyOffers;
|
||||||
|
|||||||
Reference in New Issue
Block a user