From 11fbf61cb37999952d287c293c3ff17ba5df525a Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 17 Jan 2014 12:32:22 +0100 Subject: [PATCH] [New] Added ComponentContainer.getRealmNames() Now it is possible to iterate over the configured realms. This is used in the li.strolch.rest project to build an inspector of the agent --- src/main/java/li/strolch/agent/api/ComponentContainer.java | 7 ++++++- src/main/java/li/strolch/agent/api/ElementMapHandler.java | 5 ++++- .../li/strolch/agent/impl/AbstractElementMapHandler.java | 7 +++++++ .../java/li/strolch/agent/impl/ComponentContainerImpl.java | 5 +++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/li/strolch/agent/api/ComponentContainer.java b/src/main/java/li/strolch/agent/api/ComponentContainer.java index 96e680546..4bc8af501 100644 --- a/src/main/java/li/strolch/agent/api/ComponentContainer.java +++ b/src/main/java/li/strolch/agent/api/ComponentContainer.java @@ -15,6 +15,8 @@ */ package li.strolch.agent.api; +import java.util.Set; + import li.strolch.agent.impl.DataStoreMode; import li.strolch.agent.impl.StrolchRealm; @@ -26,14 +28,17 @@ public interface ComponentContainer { public abstract StrolchAgent getAgent(); public abstract ComponentState getState(); - + public abstract DataStoreMode getDataStoreMode(); public abstract boolean hasComponent(Class clazz); public abstract T getComponent(Class clazz); + public abstract Set getRealmNames(); + public abstract StrolchRealm getDefaultRealm(); public abstract StrolchRealm getRealm(String realm); + } \ No newline at end of file diff --git a/src/main/java/li/strolch/agent/api/ElementMapHandler.java b/src/main/java/li/strolch/agent/api/ElementMapHandler.java index 13ff99f7a..e54ae8629 100644 --- a/src/main/java/li/strolch/agent/api/ElementMapHandler.java +++ b/src/main/java/li/strolch/agent/api/ElementMapHandler.java @@ -15,6 +15,8 @@ */ package li.strolch.agent.api; +import java.util.Set; + import li.strolch.agent.impl.StrolchRealm; /** @@ -22,8 +24,9 @@ import li.strolch.agent.impl.StrolchRealm; */ public interface ElementMapHandler { + public Set getRealmNames(); + public StrolchRealm getDefaultRealm(); public StrolchRealm getRealm(String realm); - } diff --git a/src/main/java/li/strolch/agent/impl/AbstractElementMapHandler.java b/src/main/java/li/strolch/agent/impl/AbstractElementMapHandler.java index 680c435bf..616bfb1ad 100644 --- a/src/main/java/li/strolch/agent/impl/AbstractElementMapHandler.java +++ b/src/main/java/li/strolch/agent/impl/AbstractElementMapHandler.java @@ -16,7 +16,9 @@ package li.strolch.agent.impl; import java.text.MessageFormat; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import li.strolch.agent.api.ElementMapHandler; import li.strolch.agent.api.StrolchComponent; @@ -38,6 +40,11 @@ public abstract class AbstractElementMapHandler extends StrolchComponent impleme super(container, componentName); } + @Override + public Set getRealmNames() { + return new HashSet<>(realms.keySet()); + } + @Override public StrolchRealm getDefaultRealm() { return getRealm(StrolchConstants.DEFAULT_REALM); diff --git a/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java b/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java index 7b93f92da..938de3abc 100644 --- a/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java +++ b/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java @@ -85,6 +85,11 @@ public class ComponentContainerImpl implements ComponentContainer { return component; } + @Override + public Set getRealmNames() { + return getComponent(ElementMapHandler.class).getRealmNames(); + } + @Override public StrolchRealm getDefaultRealm() { return getRealm(StrolchConstants.DEFAULT_REALM);