You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by ju...@apache.org on 2002/07/31 13:30:38 UTC
cvs commit: jakarta-slide/testsuite/testsuite/junit/src/org/apache/slide/testsuite/testtools/tprocessor TProcessors.java
juergen 2002/07/31 04:30:38
Modified: testsuite/testsuite/junit/src/org/apache/slide/testsuite/testtools/tprocessor
TProcessors.java
Log:
added the possibility to use variables, that contain variables in their value, which are substituted too, before usage (e.g. -Dxdav.globalVariableUserPath="/%globalVariableServerName%/administration/security/users/%host%/%user%")
Revision Changes Path
1.27 +61 -8 jakarta-slide/testsuite/testsuite/junit/src/org/apache/slide/testsuite/testtools/tprocessor/TProcessors.java
Index: TProcessors.java
===================================================================
RCS file: /home/cvs/jakarta-slide/testsuite/testsuite/junit/src/org/apache/slide/testsuite/testtools/tprocessor/TProcessors.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- TProcessors.java 29 Jul 2002 11:26:29 -0000 1.26
+++ TProcessors.java 31 Jul 2002 11:30:38 -0000 1.27
@@ -721,8 +721,10 @@
/**
- * This method is used to replace variables in a string
- * @param element the element to replacement should be applied
+ * This method is used to replace variables in a string. If a variable value uses other variables
+ * those variables are subsituted too.
+ * @param element the element containing variable definitions
+ * @param line the input line the replacement should be applied
* @param defaultValue if element is null, return this default
* @return String the value of the element, with all applied replacements, if element is null return defaultValue
*/
@@ -733,8 +735,39 @@
if (element.getAttributeValue("varUsage") != null && !element.getAttributeValue("varUsage").equals("")){
if (element.getAttributeValue("varUsage").indexOf(",") == (-1)) {
- line = replace(line, "%varUsage%", knownVariables.get(element.getAttributeValue("varUsage")));
- line = replace(line, "%"+element.getAttributeValue("varUsage")+"%", knownVariables.get(element.getAttributeValue("varUsage")));
+ String varName = "varUsage"; // default
+ line = replace(line, "%"+varName+"%", computeVarValue(element, element.getAttributeValue("varUsage")));
+ varName = element.getAttributeValue("varUsage"); // real name
+ line = replace(line, "%"+varName+"%", computeVarValue(element, varName));
+ } else {
+ StringTokenizer varNames = new StringTokenizer(element.getAttributeValue("varUsage"), ",");
+ while (varNames.hasMoreElements()) {
+ String varName = (String)varNames.nextElement();
+ line = replace(line, "%"+varName+"%", computeVarValue(element, varName));
+ }
+ }
+ }
+ return line;
+ }
+ /**
+ * This method is used to replace variables in a string. If a variable value uses other variables
+ * those variables are NOT subsituted.
+ * @param element the element containing variable definitions
+ * @param line the input line the replacement should be applied
+ * @param defaultValue if element is null, return this default
+ * @return String the value of the element, with all applied replacements, if element is null return defaultValue
+ */
+ private String doReplaceKnownVariable(Element element, String line, String defaultValue){
+
+ if (element == null) return defaultValue;
+
+ if (element.getAttributeValue("varUsage") != null && !element.getAttributeValue("varUsage").equals("")){
+
+ if (element.getAttributeValue("varUsage").indexOf(",") == (-1)) {
+ String varName = "varUsage"; // default
+ line = replace(line, "%"+varName+"%", knownVariables.get(element.getAttributeValue("varUsage")));
+ varName = element.getAttributeValue("varUsage"); // real name
+ line = replace(line, "%"+varName+"%", knownVariables.get(varName));
} else {
StringTokenizer varNames = new StringTokenizer(element.getAttributeValue("varUsage"), ",");
while (varNames.hasMoreElements()) {
@@ -745,6 +778,26 @@
}
return line;
}
+
+
+
+ /**
+ * This method computes for a given variable name the value. If the value contains
+ * additional variable references, these are resolved to their values
+ * @param element the element containing variable definitions
+ * @param varName the name of the variable
+ * @return value of the variable
+ */
+ public String computeVarValue(Element element, String varName){
+ String result = knownVariables.get(varName);
+ if (result.indexOf("%") != -1 && result.indexOf("%", result.indexOf("%")+1) != -1) {
+ result = doReplaceKnownVariable(element, result, result);
+ }
+ return result;
+ }
+
+
+
/**
* This method is used to replace variables in a string
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>