001: /*
002: * $Id: NamespacePreferences.java,v 1.6 2002/09/16 08:05:06 jkl Exp $
003: *
004: * Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
005: *
006: * Use is subject to license terms, as defined in
007: * Anvil Sofware License, Version 1.1. See LICENSE
008: * file, or http://njet.org/license-1.1.txt
009: */
010: package anvil.server;
011:
012: import java.io.IOException;
013: import javax.servlet.http.Cookie;
014: import javax.servlet.http.HttpServletRequest;
015: import javax.servlet.http.HttpServletResponse;
016: import anvil.session.Session;
017:
018: /**
019: * class NamespacePreferences
020: *
021: * @author: Jani Lehtimäki
022: */
023: public class NamespacePreferences extends Preferences {
024:
025: public static final String[] PREFERENCES = { "name", "string",
026: "provider", "string", };
027:
028: private String _name = "static";
029: private String _provider = "anvil.server.simple.SimplePersistentNamespace";
030:
031: public NamespacePreferences(Zone parent) {
032: super (parent);
033: }
034:
035: public boolean equals(Object o) {
036: return (o == this );
037: }
038:
039: public int hashCode() {
040: return _name.hashCode();
041: }
042:
043: public int getType() {
044: return NAMESPACE;
045: }
046:
047: public String getName() {
048: return _name;
049: }
050:
051: public void setName(String name) {
052: if (name != null) {
053: _name = name;
054: }
055: }
056:
057: public String getProvider() {
058: return _provider;
059: }
060:
061: public void setProvider(String provider) {
062: if (provider != null) {
063: _provider = provider;
064: }
065: }
066:
067: public String[] getPreferences() {
068: return PREFERENCES;
069: }
070:
071: public Object getPreference(String name) {
072: if (name.equalsIgnoreCase("name")) {
073: return _name;
074: }
075: if (name.equalsIgnoreCase("provider")) {
076: return _provider;
077: }
078: return super .getPreference(name);
079: }
080:
081: public boolean setPreference(String name, String value) {
082: if (name.equalsIgnoreCase("name")) {
083: setName(value);
084: } else if (name.equalsIgnoreCase("provider")) {
085: setProvider(value);
086: } else {
087: return super .setPreference(name, value);
088: }
089: return true;
090: }
091:
092: public PersistentNamespace createNamespace() {
093: try {
094: PersistentNamespace namespace = (PersistentNamespace) Class
095: .forName(_provider).newInstance();
096: namespace.initialize(getParent(), this );
097: return namespace;
098: } catch (ConfigurationError e) {
099: e.fillInStackTrace();
100: throw e;
101: } catch (Throwable t) {
102: throw new ConfigurationError("Couldn't create namespace: "
103: + _provider + ", reason: " + t.toString());
104: }
105:
106: }
107:
108: }
|