public ModuleResolveState getModule(ModuleIdentifier id) {
   ModuleResolveState module = modules.get(id);
   if (module == null) {
     module = new ModuleResolveState(id, this, metaDataResolver);
     modules.put(id, module);
   }
   return module;
 }
    public ModuleVersionResolveState getVersion(ModuleVersionIdentifier id) {
      ModuleVersionResolveState moduleRevision = versions.get(id);
      if (moduleRevision == null) {
        moduleRevision = new ModuleVersionResolveState(this, id, metaDataResolver);
        versions.put(id, moduleRevision);
      }

      return moduleRevision;
    }
 public ModuleVersionSelectorResolveState getSelector(DependencyMetaData dependencyMetaData) {
   ModuleVersionSelector requested = dependencyMetaData.getRequested();
   ModuleVersionSelectorResolveState resolveState = selectors.get(requested);
   if (resolveState == null) {
     resolveState = new ModuleVersionSelectorResolveState(dependencyMetaData, idResolver, this);
     selectors.put(requested, resolveState);
   }
   return resolveState;
 }
 public ConfigurationNode getConfigurationNode(
     ModuleVersionResolveState module, String configurationName) {
   ResolvedConfigurationIdentifier id =
       new ResolvedConfigurationIdentifier(module.id, configurationName);
   ConfigurationNode configuration = nodes.get(id);
   if (configuration == null) {
     configuration = new ConfigurationNode(id, module, this);
     nodes.put(id, configuration);
   }
   return configuration;
 }