Package anvil.server

Source Code of anvil.server.Preferences

/*
* $Id: Preferences.java,v 1.11 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server;

import java.util.Enumeration;
import anvil.java.util.Hashlist;

/**
* class Preferences
*
* @author: Jani Lehtim�ki
*/
public abstract class Preferences implements Configurable
{

  private Zone _parent;
  private Hashlist _prefs = null;
 
 
  public Preferences(Zone parent)
  {
    _parent = parent;
  }
 
  public String toString()
  {
    return CLASSES[getType()];
  }
 

  public Zone getParent()
  {
    return _parent;
  }
 

  public abstract int getType();
 
 
  public boolean isEmpty()
  {
    return _prefs == null || _prefs.size() == 0;
  }
   

  public String[] getPreferences()
  {
    return new String[0];
  }
 
 
  public String[] getAdditionalPreferenceNames()
  {
    if (_prefs == null) {
      return new String[0];
    }
    int n = _prefs.size();
    int i = 0;
    String[] s = new String[n];
    Enumeration e = _prefs.keys();
    while(e.hasMoreElements()) {
      s[i++] = (String)e.nextElement();
    }
    return s;
  }


  public boolean deletePreference(String name)
  {
    if (_prefs == null) {
      return false;
    }
    return _prefs.remove(name) != null;
  }


  public boolean setPreference(String name, String value)
  {
    if (_prefs == null) {
      _prefs = new Hashlist();
    }
    if (value == null) {
      return (_prefs.remove(name) != null);
    } else {
      _prefs.put(name, value);
      return true;
    }
  }


  public Object getPreference(String name)
  {
    if (_prefs != null) {
      return _prefs.get(name);
    } else {
      return null;
    }
  }
 
  public Object getPreference(String name, Object defaultvalue)
  {
    Object o = getPreference(name);
    return (o != null) ? o : defaultvalue;
  }
 

  public boolean getBooleanPreference(String name)
  {
    return getBooleanPreference(name, false);
  }
 
 
  public boolean getBooleanPreference(String name, boolean defaultvalue)
  {
    if (_prefs != null) {
      String v = (String)_prefs.get(name);
      if (v != null) {
        return v.equalsIgnoreCase("true");
      }
    }
    return defaultvalue;
 


  public int getIntPreference(String name)
  {
    return getIntPreference(name, 0);
  }
 
 
  public int getIntPreference(String name, int defaultvalue)
  {
    if (_prefs != null) {
      String v = (String)_prefs.get(name);
      if (v != null) {
        try {
          return Integer.parseInt(v);
        } catch (NumberFormatException e) {
        }
      }
    }
    return defaultvalue;
 


  public boolean configure(Configurable configurable)
  {
    return false;
  }


  public void deleteConfiguration(Configurable configurable)
  {
  }
 

  public Configurable[] getConfigurations()
  {
    return new Configurable[0];
  }
 

  public static String[] parseValues(String values)
  {
    int n = values.length();
    int i = 0;
    int state = 0;
    java.util.ArrayList list = new java.util.ArrayList();
    StringBuffer buffer = new StringBuffer();
    while(i<n) {
      char ch = values.charAt(i++);
      switch(state) {
      case 0:
        // expect value
        switch(ch) {
        case ',':
        case ' ':
        case '\t':
        case '\r':
        case '\n':
          //ignore
          break;
        case '"':
          // "value" started
          state = 1;
          break;
        default:
          // value started
          state = 3;
          buffer.append(ch);
          break;
        }
        break;
       
      case 2:
        state = 1;
        buffer.append(ch);
        break;
       
      case 1:
        switch(ch) {
        case '\\':
          state = 2;
          break;
        case '"':
          list.add(buffer.toString());
          buffer.setLength(0);
          state = 0;
          break;
        default:
          buffer.append(ch);
          break;
        }
        break;

      case 4:
        state = 3;
        buffer.append(ch);
        break;
       
      case 3:
        switch(ch) {
        case '\\':
          state = 4;
          break;
        case ' ':
        case '\t':
        case '\r':
        case '\n':
          list.add(buffer.toString());
          buffer.setLength(0);
          state = 0;
          break;
        case ',':
          list.add(buffer.toString());
          buffer.setLength(0);
          state = 0;
          break;
        default:
          buffer.append(ch);
          break;
        }
        break;

      }
    }
    if (state == 1 || state == 3) {
      list.add(buffer.toString());
    }
    n = list.size();
    return (String[])list.toArray(new String[n]);
  }
     

         

}
TOP

Related Classes of anvil.server.Preferences

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.