/* * Copyright 2011 Google Inc. * * 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 com.google.gwt.dev.codeserver; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * An in-memory directory of all the modules available on this code server. The {@link WebServer} * uses this directory to find the {@link ModuleState} associated with a URL and to list all the * modules on the front page. */ class Modules implements Iterable<String> { private final Map<String, ModuleState> moduleStateMap = new HashMap<String, ModuleState>(); /** * Adds a {@link ModuleState} to the map. * @param state the module state to map */ public void addModuleState(ModuleState state) { moduleStateMap.put(state.getModuleName(), state); } /** * Retrieves a {@link ModuleState} corresponding to a given module name. * @param moduleName the module name to look up */ public ModuleState get(String moduleName) { return moduleStateMap.get(moduleName); } /** * Iterates over the list of modules. */ @Override public Iterator<String> iterator() { return moduleStateMap.keySet().iterator(); } }