Save This Page
Home » jakarta-jmeter-2.3.4_src » org.apache.jmeter.functions » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *   http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    * 
   17    */
   18   
   19   package org.apache.jmeter.functions;
   20   
   21   
   22   import java.util.Collection;
   23   import java.util.LinkedList;
   24   import java.util.List;
   25   
   26   import org.apache.commons.lang.StringEscapeUtils;
   27   import org.apache.jmeter.engine.util.CompoundVariable;
   28   import org.apache.jmeter.samplers.SampleResult;
   29   import org.apache.jmeter.samplers.Sampler;
   30   import org.apache.jmeter.util.JMeterUtils;
   31   
   32   /**
   33    * Function to unescape any Java literals found in the String.
   34    * For example, it will turn a sequence of '\' and 'n' into a newline character,
   35    * unless the '\' is preceded by another '\'.
   36    * 
   37    * @see StringEscapeUtils#unescapeJava(String)
   38    */
   39   public class UnEscape extends AbstractFunction {
   40   
   41       private static final List desc = new LinkedList();
   42   
   43       private static final String KEY = "__unescape"; //$NON-NLS-1$
   44   
   45       static {
   46           desc.add(JMeterUtils.getResString("unescape_string")); //$NON-NLS-1$
   47       }
   48   
   49       private Object[] values;
   50   
   51       public UnEscape() {
   52       }
   53   
   54       public synchronized String execute(SampleResult previousResult, Sampler currentSampler)
   55               throws InvalidVariableException {
   56   
   57           String rawString = ((CompoundVariable) values[0]).execute();
   58           return StringEscapeUtils.unescapeJava(rawString);
   59   
   60       }
   61   
   62       public synchronized void setParameters(Collection parameters) throws InvalidVariableException {
   63           checkParameterCount(parameters, 1);
   64           values = parameters.toArray();
   65       }
   66   
   67       public String getReferenceKey() {
   68           return KEY;
   69       }
   70   
   71       public List getArgumentDesc() {
   72           return desc;
   73       }
   74   }

Save This Page
Home » jakarta-jmeter-2.3.4_src » org.apache.jmeter.functions » [javadoc | source]