From 647215f7a315113edfe65c81ab67e41cedf35e7a Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Wed, 14 Aug 2019 09:51:22 +0200 Subject: [PATCH] [New] added new StrolchElementToMapListener --- .../xml/StrolchElementToMapListener.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 li.strolch.model/src/main/java/li/strolch/model/xml/StrolchElementToMapListener.java diff --git a/li.strolch.model/src/main/java/li/strolch/model/xml/StrolchElementToMapListener.java b/li.strolch.model/src/main/java/li/strolch/model/xml/StrolchElementToMapListener.java new file mode 100644 index 000000000..142bcd15b --- /dev/null +++ b/li.strolch.model/src/main/java/li/strolch/model/xml/StrolchElementToMapListener.java @@ -0,0 +1,67 @@ +package li.strolch.model.xml; + +import java.util.Optional; +import java.util.stream.Stream; + +import li.strolch.model.Order; +import li.strolch.model.Resource; +import li.strolch.model.activity.Activity; +import li.strolch.utils.collections.MapOfMaps; + +public class StrolchElementToMapListener implements StrolchElementListener { + + private MapOfMaps resourceMap = new MapOfMaps<>(); + private MapOfMaps orderMap = new MapOfMaps<>(); + private MapOfMaps activityMap = new MapOfMaps<>(); + + public MapOfMaps getResourceMap() { + return this.resourceMap; + } + + public MapOfMaps getOrderMap() { + return this.orderMap; + } + + public MapOfMaps getActivityMap() { + return this.activityMap; + } + + public Optional getResource(String type, String id) { + return Optional.ofNullable(this.resourceMap.getElement(type, id)); + } + + public Optional getOrder(String type, String id) { + return Optional.ofNullable(this.orderMap.getElement(type, id)); + } + + public Optional getActivity(String type, String id) { + return Optional.ofNullable(this.activityMap.getElement(type, id)); + } + + public Stream resourceStream(String type) { + return this.resourceMap.getAllElements(type).stream(); + } + + public Stream orderStream(String type) { + return this.orderMap.getAllElements(type).stream(); + } + + public Stream activityStream(String type) { + return this.activityMap.getAllElements(type).stream(); + } + + @Override + public void notifyResource(Resource resource) { + this.resourceMap.addElement(resource.getType(), resource.getId(), resource); + } + + @Override + public void notifyOrder(Order order) { + this.orderMap.addElement(order.getType(), order.getId(), order); + } + + @Override + public void notifyActivity(Activity activity) { + this.activityMap.addElement(activity.getType(), activity.getId(), activity); + } +}