Package org.w3c.jigsaw.http

Source Code of org.w3c.jigsaw.http.ConfigResource

// ConfigResource.java
// $Id: ConfigResource.java,v 1.8 2000/08/16 21:37:40 ylafon Exp $
// (c) COPYRIGHT MIT and INRIA, 1996.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.jigsaw.http;

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.NoSuchElementException;

import org.w3c.tools.resources.AbstractContainer;
import org.w3c.tools.resources.DummyResourceReference;
import org.w3c.tools.resources.Resource;
import org.w3c.tools.resources.ResourceReference;

class ConfigResourceEnumeration implements Enumeration {

    private static final String ids[] = {
  ConfigResource.SPACE_NAME,
  "properties",
  "indexers",
  "realms",
  "control"
    };
    int idx = 0;

    public boolean hasMoreElements() {
  return idx < ids.length;
    }

    public Object nextElement() {
  if ( idx >= ids.length )
      throw new NoSuchElementException("config resource enumeration");
  return ids[idx++];
    }

    ConfigResourceEnumeration() {
  this.idx = 0;
    }
}

class PropertySetEnumeration implements Enumeration {
    Enumeration e = null;

    public boolean hasMoreElements() {
  return e.hasMoreElements();
    }

    public Object nextElement() {
  return ((Resource) e.nextElement()).getIdentifier();
    }

    protected PropertySetEnumeration(Enumeration e) {
  this.e = e;
    }

}

class PropertiesConfig extends AbstractContainer {
    httpd server = null;

    public void registerResource(String n, Resource c, Hashtable d) {
  throw new RuntimeException("static container");
    }

    public ResourceReference createDefaultResource(String name) {
  throw new RuntimeException("static container");
    }

    public void delete(String name) {
  throw new RuntimeException("static container");
   

    public Enumeration enumerateResourceIdentifiers(boolean all) {
  return new PropertySetEnumeration(server.enumeratePropertySet());
    }

    public ResourceReference lookup(String name) {
  return new DummyResourceReference(server.getPropertySet(name));
    }

    protected PropertiesConfig(httpd server) {
  this.server = server;
    }

}

public class ConfigResource extends AbstractContainer {

    public final static String SPACE_NAME = "docs_space";

    protected httpd server = null;
    protected ResourceReference propConfig = null;
    protected ResourceReference realmConfig = null;
    protected ResourceReference controlConfig = null;
    protected ResourceReference indexers = null;

    public void registerResource(String n, Resource c, Hashtable d) {
  throw new RuntimeException("static container");
    }

    public ResourceReference createDefaultResource(String name) {
  throw new RuntimeException("static container");
    }

    public void delete(String name) {
  throw new RuntimeException("static container");
   

    public Enumeration enumerateResourceIdentifiers(boolean all) {
  return new ConfigResourceEnumeration();
    }

    public ResourceReference lookup(String name) {
  if ( name.equals(SPACE_NAME) ) {
      return server.getEditRoot();
  } else if ( name.equals("properties") ) {
      return propConfig;
  } else if ( name.equals("indexers") ) {
      return indexers;
  } else if ( name.equals("realms" ) ) {
      return realmConfig;
  } else if ( name.equals("control") ) {
      return controlConfig;
  }
  return null;
    }

    public ConfigResource(httpd server) {
  this.server = server;
  this.propConfig =
      new DummyResourceReference(new PropertiesConfig(server));
  this.realmConfig =
      new DummyResourceReference(server.getRealmsCatalog());
  this.controlConfig =
      new DummyResourceReference(new ControlResource(server));
  this.indexers =
      new DummyResourceReference( server.getIndexersCatalog() );
    }

}
TOP

Related Classes of org.w3c.jigsaw.http.ConfigResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.