blob: 1cc675767528c17844517210ba00ae665af27fdc [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.qpid.junit.extensions.util;
import java.util.Properties;
/**
* ParsedProperties extends the basic Properties class with methods to extract properties, not as strings but as strings
* parsed into basic types.
*
* <p/><table id="crc"><caption>CRC Card</caption>
* <tr><th> Responsibilities <th> Collaborations
* </table>
*
* @author Rupert Smith
*/
public class ParsedProperties extends Properties
{
/**
* Creates an empty ParsedProperties.
*/
public ParsedProperties()
{
super();
}
/**
* Creates a ParsedProperties initialized with the specified properties.
*
* @param props The properties to initialize this with.
*/
public ParsedProperties(Properties props)
{
super(props);
}
/**
* Helper method for setting system properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public static boolean setSysPropertyIfNull(String propname, boolean value)
{
return Boolean.parseBoolean(setSysPropertyIfNull(propname, Boolean.toString(value)));
}
/**
* Helper method for setting system properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public static short setSysPropertyIfNull(String propname, short value)
{
return Short.parseShort(setSysPropertyIfNull(propname, Short.toString(value)));
}
/**
* Helper method for setting system properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public static int setSysPropertyIfNull(String propname, int value)
{
return Integer.parseInt(setSysPropertyIfNull(propname, Integer.toString(value)));
}
/**
* Helper method for setting system properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public static long setSysPropertyIfNull(String propname, long value)
{
return Long.parseLong(setSysPropertyIfNull(propname, Long.toString(value)));
}
/**
* Helper method for setting system properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public static float setSysPropertyIfNull(String propname, float value)
{
return Float.parseFloat(setSysPropertyIfNull(propname, Float.toString(value)));
}
/**
* Helper method for setting system properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public static double setSysPropertyIfNull(String propname, double value)
{
return Double.parseDouble(setSysPropertyIfNull(propname, Double.toString(value)));
}
/**
* Helper method for setting system properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the system property after this method call.
*/
public static String setSysPropertyIfNull(String propname, String value)
{
String property = System.getProperty(propname);
if (property == null)
{
System.setProperty(propname, value);
return value;
}
else
{
return property;
}
}
/**
* Helper method for setting properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public boolean setPropertyIfNull(String propname, boolean value)
{
return Boolean.parseBoolean(setPropertyIfNull(propname, Boolean.toString(value)));
}
/**
* Helper method for setting properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public short setPropertyIfNull(String propname, short value)
{
return Short.parseShort(setPropertyIfNull(propname, Short.toString(value)));
}
/**
* Helper method for setting properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public int setPropertyIfNull(String propname, int value)
{
return Integer.parseInt(setPropertyIfNull(propname, Integer.toString(value)));
}
/**
* Helper method for setting properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public long setPropertyIfNull(String propname, long value)
{
return Long.parseLong(setPropertyIfNull(propname, Long.toString(value)));
}
/**
* Helper method for setting properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public float setPropertyIfNull(String propname, float value)
{
return Float.parseFloat(setPropertyIfNull(propname, Float.toString(value)));
}
/**
* Helper method for setting properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public double setPropertyIfNull(String propname, double value)
{
return Double.parseDouble(setPropertyIfNull(propname, Double.toString(value)));
}
/**
* Helper method for setting properties to defaults when they are not already set.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public String setPropertyIfNull(String propname, String value)
{
String property = super.getProperty(propname);
if (property == null)
{
super.setProperty(propname, value);
return value;
}
else
{
return property;
}
}
/**
* Helper method for setting properties.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public boolean setProperty(String propname, boolean value)
{
setProperty(propname, Boolean.toString(value));
return value;
}
/**
* Helper method for setting properties.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public short setProperty(String propname, short value)
{
setProperty(propname, Short.toString(value));
return value;
}
/**
* Helper method for setting properties.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public int setProperty(String propname, int value)
{
setProperty(propname, Integer.toString(value));
return value;
}
/**
* Helper method for setting properties.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public long setProperty(String propname, long value)
{
setProperty(propname, Long.toString(value));
return value;
}
/**
* Helper method for setting properties.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public float setProperty(String propname, float value)
{
setProperty(propname, Float.toString(value));
return value;
}
/**
* Helper method for setting properties.
*
* @param propname The name of the system property to set.
* @param value The value to set it to.
*
* @return The value of the property after this method call.
*/
public double setProperty(String propname, double value)
{
setProperty(propname, Double.toString(value));
return value;
}
/**
* Parses a property as a boolean.
*
* @param propName The property.
*
* @return The property as a boolean, or false if it does not exist.
*/
public boolean getPropertyAsBoolean(String propName)
{
String prop = getProperty(propName);
return (prop != null) && Boolean.parseBoolean(prop);
}
/**
* Parses a property as an integer.
*
* @param propName The property.
*
* @return The property as a integer, or null if it does not exist.
*/
public Integer getPropertyAsInteger(String propName)
{
String prop = getProperty(propName);
return (prop != null) ? new Integer(prop) : null;
}
/**
* Parses a property as a long.
*
* @param propName The property.
*
* @return The property as a long, or null if it does not exist.
*/
public Long getPropertyAsLong(String propName)
{
String prop = getProperty(propName);
return (prop != null) ? new Long(prop) : null;
}
}