summaryrefslogtreecommitdiff
path: root/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java')
-rw-r--r--qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java390
1 files changed, 390 insertions, 0 deletions
diff --git a/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java b/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java
new file mode 100644
index 0000000000..1cc6757675
--- /dev/null
+++ b/qpid/java/junit-toolkit/src/main/org/apache/qpid/junit/extensions/util/ParsedProperties.java
@@ -0,0 +1,390 @@
+/*
+ *
+ * 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;
+ }
+}