Refactor SWT directory structure.
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / util / register / ComponentRegister.java
index d5f9ea4211d67c774cddfa25a9d3b3a7639323fe..d78b6badbeb2dea14b6ea9103dc1760b71a0ea50 100644 (file)
@@ -10,6 +10,20 @@ public interface ComponentRegister {
 
        <T> SortedSet<Component<? extends T>> find(Class<T> clss, Predicate<Map<String, Object>> filter);
 
+       default <T> Component.PublishedType<T> getSingleton(Class<T> type) {
+               SortedSet<Component<? extends T>> found = find(type, null);
+               if (found.size() == 0)
+                       throw new IllegalStateException("No component found for " + type);
+               return found.first().getType(type);
+       }
+
+       default <T> T getObject(Class<T> clss) {
+               SortedSet<Component<? extends T>> found = find(clss, null);
+               if (found.size() == 0)
+                       return null;
+               return found.first().get();
+       }
+
        Component<?> get(Object instance);
 
 //     default <T> PublishedType<T> getType(Class<T> clss) {