Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1979)

Unified Diff: sky/shell/org/domokit/sky/shell/ServiceRegistry.java

Issue 969753003: Make it possible for SkyShell embedders to register services (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sky/shell/org/domokit/sky/shell/ServiceRegistry.java
diff --git a/sky/shell/org/domokit/sky/shell/ServiceRegistry.java b/sky/shell/org/domokit/sky/shell/ServiceRegistry.java
new file mode 100644
index 0000000000000000000000000000000000000000..49affd14353c2d8f4de7ae39facef9748e36728d
--- /dev/null
+++ b/sky/shell/org/domokit/sky/shell/ServiceRegistry.java
@@ -0,0 +1,31 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.domokit.sky.shell;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * An registry for services.
+ **/
+public class ServiceRegistry {
+ private Map<String, ServiceFactory> mRegistrations;
+
+ public static final ServiceRegistry SHARED = new ServiceRegistry();
+
+ private ServiceRegistry() {
+ mRegistrations = new TreeMap<String, ServiceFactory>();
+ }
+
+ public void register(String interfaceName, ServiceFactory connector) {
+ assert !mRegistrations.containsKey(interfaceName);
+ assert connector != null;
+ mRegistrations.put(interfaceName, connector);
+ }
+
+ public ServiceFactory get(String interfaceName) {
+ return mRegistrations.get(interfaceName);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698