donaldp 01/04/18 05:50:39 Added: src/java/org/apache/avalon/parameters ParameterException.java Parameters.java Parametizable.java Log: Move parameters to their own package. Add in Parametizable interface Revision Changes Path 1.1 jakarta-avalon/src/java/org/apache/avalon/parameters/ParameterException.java Index: ParameterException.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package org.apache.avalon.parameters; import org.apache.avalon.CascadingException; /** * Thrown when a <code>Configurable</code> component cannot be configured * properly, or if a value cannot be retrieved properly. * * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> */ public final class ParameterException extends CascadingException { /** * Construct a new <code>ParameterException</code> instance. * * @param message The detail message for this exception. */ public ParameterException( final String message ) { this( message, null ); } /** * Construct a new <code>ParameterException</code> instance. * * @param message The detail message for this exception. * @param throwable the root cause of the exception */ public ParameterException( final String message, final Throwable throwable ) { super( message, throwable ); } } 1.1 jakarta-avalon/src/java/org/apache/avalon/parameters/Parameters.java Index: Parameters.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package org.apache.avalon.parameters; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; import org.apache.avalon.configuration.Configuration; import org.apache.avalon.configuration.ConfigurationException; /** * * @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a> */ public class Parameters { protected HashMap m_parameters; /** * Create a new <code>Parameters</code> instance. */ public Parameters() { m_parameters = new HashMap(); } /** * Set the <code>String</code> value of a specified parameter. * <p /> * If the specified value is <b>null</b> the parameter is removed. * * @return The previous value of the parameter or <b>null</b>. */ public String setParameter( final String name, final String value ) { if( null == name ) { return null; } if( null == value ) { return (String)m_parameters.remove( name ); } return (String)m_parameters.put( name, value ); } /** * Return an <code>Enumeration</code> view of all parameter names. */ public Iterator getParameterNames() { return m_parameters.keySet().iterator(); } /** * Check if the specified parameter can be retrieved. */ public boolean isParameter( final String name ) { return m_parameters.containsKey( name ); } /** * Retrieve the <code>String</code> value of the specified parameter. * <p /> * If the specified parameter cannot be found, <b>null</b> is returned. */ protected String getParameter( final String name ) { if( null == name ) { return null; } return (String)m_parameters.get( name ); } /** * Retrieve the <code>String</code> value of the specified parameter. * <p /> * If the specified parameter cannot be found, <code>defaultValue</code> * is returned. */ public String getParameter( final String name, final String defaultValue ) { final String value = getParameter( name ); if( null == value ) { return defaultValue; } else { return value; } } /** * Retrieve the <code>int</code> value of the specified parameter. * <p /> * If the specified parameter cannot be found, <code>defaultValue</code> * is returned. */ public int getParameterAsInteger( final String name, final int defaultValue ) { final String value = getParameter( name ); if( null == value ) { return defaultValue; } try { if( value.startsWith("0x") ) { return Integer.parseInt( value.substring(2), 16 ); } else if( value.startsWith("0o") ) { return Integer.parseInt( value.substring(2), 8 ); } else if( value.startsWith("0b") ) { return Integer.parseInt( value.substring(2), 2 ); } else { return Integer.parseInt( value ); } } catch( final NumberFormatException nfe ) { return defaultValue; } } /** * Retrieve the <code>long</code> value of the specified parameter. * <p /> * If the specified parameter cannot be found, <code>defaultValue</code> * is returned. */ public long getParameterAsLong( final String name, final long defaultValue ) { final String value = getParameter( name ); if( null == value ) { return defaultValue; } try { if( value.startsWith("0x") ) { return Long.parseLong( value.substring(2), 16 ); } else if( value.startsWith("0o") ) { return Long.parseLong( value.substring(2), 8 ); } else if( value.startsWith("0b") ) { return Long.parseLong( value.substring(2), 2 ); } else { return Long.parseLong(value); } } catch( final NumberFormatException nfe ) { return defaultValue; } } /** * Retrieve the <code>float</code> value of the specified parameter. * <p /> * If the specified parameter cannot be found, <code>defaultValue</code> * is returned. */ public float getParameterAsFloat( final String name, final float defaultValue ) { final String value = getParameter( name ); if( null == value ) { return defaultValue; } try { return Float.parseFloat(value); } catch( final NumberFormatException nfe ) { return defaultValue; } } /** * Retrieve the <code>boolean</code> value of the specified parameter. * <p /> * If the specified parameter cannot be found, <code>defaultValue</code> * is returned. */ public boolean getParameterAsBoolean( final String name, final boolean defaultValue ) { final String value = getParameter( name ); if( null == value ) { return defaultValue; } if( value.equalsIgnoreCase("true") ) { return true; } if( value.equalsIgnoreCase("false") ) { return(false); } return defaultValue; } /** * Merge parameters from another <code>Parameters</code> instance * into this. * * @return This <code>Parameters</code> instance. */ public Parameters merge( final Parameters other ) { final Iterator names = other.getParameterNames(); while( names.hasNext() ) { final String name = (String) names.next(); final String value = other.getParameter( name ); setParameter( name, value ); } return this; } /** * Create a <code>Parameters</code> object from a <code>Configuration</code> * object. */ public static Parameters fromConfiguration( final Configuration configuration ) throws ConfigurationException { if( null == configuration ) { throw new ConfigurationException( "You cannot convert to parameters with " + "a null Configuration" ); } final Configuration[] parameters = configuration.getChildren( "parameter" ); final Parameters param = new Parameters(); for (int i = 0; i < parameters.length; i++ ) { try { final String name = parameters[ i ].getAttribute( "name" ); final String value = parameters[ i ].getAttribute( "value" ); param.setParameter( name, value ); } catch( final Exception e ) { throw new ConfigurationException( "Cannot process Configurable", e ); } } return param; } } 1.1 jakarta-avalon/src/java/org/apache/avalon/parameters/Parametizable.java Index: Parametizable.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE file. */ package org.apache.avalon.parameters; /** * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> */ public interface Parametizable { void paramatize( Parameters parameters ) throws ParameterException; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]