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>