/* * Copyright 2005 Joe Walker * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.directwebremoting.datasync; import java.util.HashMap; import java.util.Map; /** * A way to find {@link StoreProvider}s that people wish to expose to the * outside world. * Warning. This API may well get wrapped in a Factory like the other DWR * services. * TODO: decide if we want to wrap this * @author Joe Walker [joe at getahead dot ltd dot uk] */ public class Directory { /** * Register a StoreProvider for access by the outside world * @param storeId The id by which the store can be reached * @param provider The store provider that holds the Map of data */ public static void register(String storeId, StoreProvider<?> provider) { providers.put(storeId, provider); } /** * Remove the registration of a StoreProvider * @param storeId The id by which the store can be reached */ public static void unregister(String storeId) { providers.remove(storeId); } /** * Look up the StoreProvider by ID. * @param storeId The id by which the store can be reached * @return The found StoreProvider or null if one is not found. */ @SuppressWarnings("unchecked") public static <T> StoreProvider<T> getRegistration(String storeId, @SuppressWarnings("unused") Class<T> type) { return (StoreProvider<T>) providers.get(storeId); } /** * Internal map of stores */ private static Map<String, StoreProvider<?>> providers = new HashMap<String, StoreProvider<?>>(); }