blob: 19ccd880907745f49fed5b72b11bdc28face356c [file] [log] [blame]
/*
* 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();
}
}