
com.xtremelabs.robolectric.util.PropertiesHelper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of robolectric Show documentation
Show all versions of robolectric Show documentation
An alternative Android testing framework.
package com.xtremelabs.robolectric.util;
import java.util.Enumeration;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PropertiesHelper {
public static String doSingleSubstitution(String originalValue, Properties properties) {
if (originalValue == null) {
return null;
}
Pattern variablePattern = Pattern.compile("([^$]*)\\$\\{(.*?)\\}(.*)");
String expandedValue = originalValue;
Matcher variableMatcher = variablePattern.matcher(expandedValue);
while (variableMatcher.matches()) {
String propertyName = variableMatcher.group(2);
String propertyValue = null;
if (properties != null) {
propertyValue = properties.getProperty(propertyName);
}
if (propertyValue == null) {
propertyValue = System.getProperty(propertyName);
}
if (propertyValue == null) {
return originalValue;
}
String sdkPathStart = variableMatcher.group(1);
String sdkPathEnd = variableMatcher.group(3);
expandedValue = sdkPathStart + propertyValue + sdkPathEnd;
variableMatcher = variablePattern.matcher(expandedValue);
}
return expandedValue;
}
public static void doSubstitutions(Properties properties) {
Enumeration> propertyNames = properties.propertyNames();
while (propertyNames.hasMoreElements()) {
String propertyName = (String) propertyNames.nextElement();
String propertyValue = properties.getProperty(propertyName);
String expandedPropertyValue = doSingleSubstitution(propertyValue, properties);
properties.setProperty(propertyName, expandedPropertyValue);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy