Package org.gudy.azureus2.core3.config

Source Code of org.gudy.azureus2.core3.config.COConfigurationManager$ParameterVerifier

/*
* File    : COConfigurationManager.java
* Created : 5 Oct. 2003
* By      : Parg
*
* Azureus - a Java Bittorrent client
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details ( see the LICENSE file ).
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/
package org.gudy.azureus2.core3.config;

import java.util.List;
import java.util.Map;
import java.util.Set;
import java.io.IOException;
import java.net.URL;

import org.gudy.azureus2.core3.config.impl.*;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.core3.util.SystemProperties;
import org.gudy.azureus2.core3.util.protocol.AzURLStreamHandlerFactory;

public class
COConfigurationManager
{
  public static final int CONFIG_DEFAULT_MIN_MAX_UPLOAD_SPEED      = 5;
  public static final int CONFIG_DEFAULT_MAX_DOWNLOAD_SPEED      = 0;
  public static final int  CONFIG_DEFAULT_MAX_CONNECTIONS_PER_TORRENT  = 50;
  public static final int  CONFIG_DEFAULT_MAX_CONNECTIONS_GLOBAL    = 250;
 
  public static final int CONFIG_CACHE_SIZE_MAX_MB;
 
  static{
    long max_mem_bytes   = Runtime.getRuntime().maxMemory();
      long mb_1      = 1*1024*1024;
      long mb_32      = 32*mb_1;
      int size = (int)(( max_mem_bytes - mb_32 )/mb_1);     
      if( size > 2000 size = 2000//safety check
      if( size < 1 size = 1;
      CONFIG_CACHE_SIZE_MAX_MB = size;
  }
 
  public static final boolean  ENABLE_MULTIPLE_UDP_PORTS  = false;
 
  private static boolean  pre_initialised;
 
  public static synchronized void
  preInitialise()
  {     
    if ( !pre_initialised ){
     
      pre_initialised  = true;
   
      try{
        /*
          String  handlers = System.getProperty( "java.protocol.handler.pkgs" );
         
          if ( handlers == null ){
           
            handlers = "org.gudy.azureus2.core3.util.protocol";
           
          }else{
           
            handlers += "|org.gudy.azureus2.core3.util.protocol";
          }
         
          System.setProperty( "java.protocol.handler.pkgs", handlers );
          */
       
        URL.setURLStreamHandlerFactory(new AzURLStreamHandlerFactory());
            
            // DNS cache timeouts
         
          System.setProperty("sun.net.inetaddr.ttl", "60");
          System.setProperty("networkaddress.cache.ttl", "60");
         
         
          // flick AWT into headless mode, which is supposed to make it more lightweight
          // don't do this as it borks (for example) swing based plugins, java webstart installer,
          // swing webui plugin, ....
         
          // System.setProperty("java.awt.headless", "true");
         
          // defaults, overridden later if needed
         
          System.setProperty( "sun.net.client.defaultConnectTimeout", "120000" )
          System.setProperty"sun.net.client.defaultReadTimeout", "60000" );
             
            //see http://developer.apple.com/releasenotes/Java/Java142RN/ResolvedIssues/chapter_3_section_7.html
            //fixes the osx kernel panic bug caused by Apple's faulty kqueue implementation (as of 10.3.6)
         
          if( Constants.isOSX ) {
           
              // things seem good in 10.6
           
            //if ( !Constants.isOSX_10_6_OrHigher ){
             
              System.setProperty( "java.nio.preferSelect", "true" );
            //}
          }
         
          SystemProperties.determineApplicationName();
         
      }catch( Throwable e ){
       
          // can happen in applet
       
        e.printStackTrace();
      }
    }
  }
 
  public static ConfigurationManager
  initialise()
  {
    preInitialise();
   
    return ConfigurationManager.getInstance();
  }
 
  public static ConfigurationManager
  initialiseFromMap(
    Map    data )
  {
    preInitialise();
   
    return ConfigurationManager.getInstance(data);
  }

  public static final boolean
  isNewInstall()
  {
    return( ConfigurationManager.getInstance().isNewInstall());
  }
 
  public static String
  getStringParameter(
    String    _name )
  {
    return( ConfigurationManager.getInstance().getStringParameter( _name ));
  }
 
  public static String
  getStringParameter(
    String    _name,
    String    _default )
  {
    return( ConfigurationManager.getInstance().getStringParameter( _name, _default ));
  }
 
  public static boolean
  setParameter(String parameter, String value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }

  public static boolean
  verifyParameter(String parameter, String value)
  {
    return ConfigurationManager.getInstance().verifyParameter( parameter, value );
  }
 
  public static boolean
  getBooleanParameter(
    String    _name )
  {
    return( ConfigurationManager.getInstance().getBooleanParameter( _name ));
  }
 
  /**
   * @deprecated You should set ConfigurationDefaults, and use {@link #getBooleanParameter(String)}
   */
  public static boolean
  getBooleanParameter(
    String    _name,
    boolean    _default )
  {
    return( ConfigurationManager.getInstance().getBooleanParameter( _name, _default ));
  }
 
  public static boolean 
  setParameter(String parameter, boolean value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static int
  getIntParameter(
    String    _name )
  {
    return( ConfigurationManager.getInstance().getIntParameter( _name ));
  }
 
 
  /**
   * Only use this for internal values, NOT for ones that the user can sensibly change. In this
   * case add the key to the configuration defaults and use the above method
   * @param _name
   * @param _def
   * @return
   */
 
  public static int
  getIntParameter(
    String    _name,
    int    _default )
  {
    return( ConfigurationManager.getInstance().getIntParameter( _name, _default ));
  }
 
  public static boolean
  setParameter(String parameter, int value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static boolean
  setParameter(String parameter, long value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static long
  getLongParameter(
    String    _name )
  {
    return( ConfigurationManager.getInstance().getLongParameter( _name ));
  }
 
  /**
   * Only use this for internal values, NOT for ones that the user can sensibly change. In this
   * case add the key to the configuration defaults and use the above method
   * @param _name
   * @param _def
   * @return
   */
 
  public static long
  getLongParameter(
    String    _name,
    long    _def )
  {
    return( ConfigurationManager.getInstance().getLongParameter( _name, _def ));
  }
 
  public static byte[] getByteParameter(String _name) {
    return( ConfigurationManager.getInstance().getByteParameter(_name));
  }

  public static byte[]
  getByteParameter(
    String    _name,
    byte[]    _default )
  {
    return( ConfigurationManager.getInstance().getByteParameter( _name, _default ));
  }
 
  public static boolean
  setParameter(String parameter, byte[] value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static String
  getDirectoryParameter(
    String    _name )   
    throws IOException
  {
    return( ConfigurationManager.getInstance().getDirectoryParameter( _name ));
  }
 
 
 
  /*
  public static boolean
  setParameter(String parameter, Color value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }

  public static boolean
  setParameter(String parameter, RGB value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
  */
 
  public static boolean
  setRGBParameter(String parameter, int red, int green, int blue)
  {
    return ConfigurationManager.getInstance().setRGBParameter( parameter, red, green, blue);
  }
 
  public static boolean setRGBParameter(String parameter, int[] rgb, boolean override) {
    return ConfigurationManager.getInstance().setRGBParameter(parameter, rgb, override);
  }

  public static float
  getFloatParameter(
    String    _name)
  {
    return( ConfigurationManager.getInstance().getFloatParameter( _name ));
  }
 
  public static float
  getFloatParameter(
    String    _name,
    float    _def )
  {
    return( ConfigurationManager.getInstance().getFloatParameter( _name, _def ));
  }
  public static boolean
  setParameter(String parameter, float value)
  {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static boolean
  setParameter(String parameter,StringList value) {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static StringList
  getStringListParameter(String parameter)
  {
    return( ConfigurationManager.getInstance().getStringListParameter( parameter ));
  }

  public static boolean
  setParameter(String parameter,List value) {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static List
  getListParameter(String parameter, List def)
  {
    return( ConfigurationManager.getInstance().getListParameter( parameter, def ));
  }
 
  public static boolean
  setParameter(String parameter,Map value) {
    return ConfigurationManager.getInstance().setParameter( parameter, value );
  }
 
  public static Map
  getMapParameter(String parameter, Map def)
  {
    return( ConfigurationManager.getInstance().getMapParameter( parameter, def ));
  }
 
    /**
     * Returns true if a parameter with the given name exists.
     * @param key The name of the parameter to check.
     * @param explicit If <tt>true</tt>, we only check for a value which is
     *     definitely stored explicitly, <tt>false</tt> means that we'll also
     *     check against configuration defaults too. 
     */
  public static boolean hasParameter(String parameter, boolean explicit) {
    return ConfigurationManager.getInstance().hasParameter(parameter, explicit);
  }
 
  public static void
  save()
  {
    ConfigurationManager.getInstance().save();
  }
 
    /**
     * Mark as needing a save but not immediately - use when potentially needing a large number of saves that aren't
     * absolutely required to be immediately persisted
     */
 
  public static void
  setDirty()
  {
    ConfigurationManager.getInstance().setDirty();
  }
 
  public static void
  addListener(
    COConfigurationListener    listener )
  {
    ConfigurationManager.getInstance().addListener( listener );
  }

  public static void
  addParameterListener(String parameter, ParameterListener listener)
  {
    ConfigurationManager.getInstance().addParameterListener(parameter, listener);
  }

  /**
   * @param strings
   * @param parameterListener
   *
   * @since 3.0.1.5
   */
  public static void addParameterListener(String[] ids,
      ParameterListener listener) {
    ConfigurationManager instance = ConfigurationManager.getInstance();
    for (int i = 0; i < ids.length; i++) {
      instance.addParameterListener(ids[i], listener);
    }
  }

  public static void
  addAndFireParameterListener(String parameter, ParameterListener listener)
  {
    ConfigurationManager.getInstance().addParameterListener(parameter, listener);
   
    listener.parameterChanged( parameter );
  }
 
  public static void
  addAndFireParameterListeners(String[] parameters, ParameterListener listener)
  {
    for (int i=0;i<parameters.length;i++){
      ConfigurationManager.getInstance().addParameterListener(parameters[i], listener);
    }
   
    listener.parameterChanged( null );
  }
  public static void
  removeParameterListener(String parameter, ParameterListener listener)
  {
    ConfigurationManager.getInstance().removeParameterListener(parameter, listener);
  }

  public static void
  removeListener(
    COConfigurationListener    listener )
  {
    ConfigurationManager.getInstance().removeListener( listener );
  }
 
  public static Set
  getAllowedParameters()
  {
    return ConfigurationDefaults.getInstance().getAllowedParameters();
  }
 
  public static Set
  getDefinedParameters()
  {
    return ConfigurationManager.getInstance().getDefinedParameters();
  }
 
    /**
     * raw parameter access
     * @param name
     * @return
     */
  public static Object
  getParameter(
  String  name )
  {
    return ConfigurationManager.getInstance().getParameter(name);
  }
    
    /**
     * checks if a default is defined for the named parameter
     * @param parameter
     * @return
     */
 
  public static boolean
  doesParameterDefaultExist(
   String     parameter)
  {
       return ConfigurationDefaults.getInstance().doesParameterDefaultExist(parameter);
  }
 
    /**
     * checks if the user has explicitly set a value for the named parameter
     * @param parameter
     * @return
     */
 
  public static boolean
  doesParameterNonDefaultExist(
   String     parameter)
  {
       return ConfigurationManager.getInstance().doesParameterNonDefaultExist(parameter);
  }
  public static void
  registerExternalDefaults(
    Map              addmap)
  {
    ConfigurationDefaults.getInstance().registerExternalDefaults(addmap);
  }
 
  public static void
  setBooleanDefault(
    String  parameter,
  boolean  _default )
  {
    ConfigurationDefaults.getInstance().addParameter( parameter, _default );
  }
 
  public static void setFloatDefault(String parameter, float _default) {
    ConfigurationDefaults.getInstance().addParameter( parameter, _default );
  }
 
  public static void
  setIntDefault(
    String  parameter,
  int  _default )
  {
    ConfigurationDefaults.getInstance().addParameter( parameter, _default );
  }

  public static void
  setLongDefault(
    String  parameter,
  long  _default )
  {
    ConfigurationDefaults.getInstance().addParameter( parameter, _default );
  }
 
  public static void
  setStringDefault(
    String  parameter,
  String  _default )
  {
    ConfigurationDefaults.getInstance().addParameter( parameter, _default );
  }
 
  public static void
  setByteDefault(
    String  parameter,
  byte[]  _default )
  {
    ConfigurationDefaults.getInstance().addParameter( parameter, _default );
  }
 
  public static Object
  getDefault(
   String parameter )
  {
  return( ConfigurationDefaults.getInstance().getParameter( parameter ));
  }
 
  public static boolean removeParameter(String parameter) {
    return ConfigurationManager.getInstance().removeParameter(parameter);
  }
 
  public static boolean removeRGBParameter(String parameter) {
    return ConfigurationManager.getInstance().removeRGBParameter(parameter);
  }
 
  public static void
  resetToDefaults()
  {
    ConfigurationManager.getInstance().resetToDefaults();
  }
 
  public interface
  ParameterVerifier
  {
    public boolean
    verify(
    String  parameter,
    Object  value );
  }
}
TOP

Related Classes of org.gudy.azureus2.core3.config.COConfigurationManager$ParameterVerifier

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.