Package org.apache.jmeter.functions

Source Code of org.apache.jmeter.functions.AbstractFunction

// $Header: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/functions/AbstractFunction.java,v 1.11 2004/03/02 00:07:51 sebb Exp $
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed 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.jmeter.functions;

//import java.io.UnsupportedEncodingException;
import java.util.Collection;
//import java.util.LinkedList;
//import java.util.List;
//import java.util.StringTokenizer;

import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.threads.JMeterContext;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
//import org.apache.jorphan.util.JOrphanUtils;

/**
* @version $Revision: 1.11 $ on $Date: 2004/03/02 00:07:51 $
*/
public abstract class AbstractFunction implements Function
{
   
    /**
     * @see Function#execute(SampleResult, Sampler)
     */
    abstract public String execute(
        SampleResult previousResult,
        Sampler currentSampler)
        throws InvalidVariableException;

    public String execute() throws InvalidVariableException
    {
        JMeterContext context = JMeterContextService.getContext();
        SampleResult previousResult = context.getPreviousResult();
        Sampler currentSampler = context.getCurrentSampler();
        return execute(previousResult, currentSampler);
    }


    /**
     * @see Function#setParameters(Collection)
     */
    abstract public void setParameters(Collection parameters)
        throws InvalidVariableException;

    /**
     * @see Function#getReferenceKey()
     */
    abstract public String getReferenceKey();

// Not used   
//    /**
//     * Provides a convenient way to parse the given argument string into a
//     * collection of individual arguments.  Takes care of splitting the string
//     * based on commas, generates blank strings for values between adjacent
//     * commas, and decodes the string using URLDecoder.
//     *
//     * @deprecated
//     */
//    protected Collection parseArguments(String params)
//    {
//        StringTokenizer tk = new StringTokenizer(params, ",", true);
//        List arguments = new LinkedList();
//        String previous = "";
//        while (tk.hasMoreTokens())
//        {
//            String arg = tk.nextToken();
//
//            if (arg.equals(",") && previous.equals(","))
//            {
//                arguments.add("");
//            }
//            else if (!arg.equals(","))
//            {
//                try
//                {
//                    arguments.add(JOrphanUtils.decode(arg, "UTF-8"));
//                }
//                catch (UnsupportedEncodingException e)
//                {
//                    // UTF-8 unsupported? You must be joking!
//                    throw new Error("Should not happen: "+e.toString());
//                }
//            }
//            previous = arg;
//        }
//        return arguments;
//    }

    /**
     * Provides a convenient way to parse the given argument string into a
     * collection of individual arguments.  Takes care of splitting the string
     * based on commas, generates blank strings for values between adjacent
     * commas, and decodes the string using URLDecoder.
     */
/*
    protected Collection parseArguments2(String params)
    {
        StringTokenizer tk = new StringTokenizer(params, ",", true);
        List arguments = new LinkedList();
        String previous = "";
        while (tk.hasMoreTokens())
        {
            String arg = tk.nextToken();

            if (arg.equals(",")
                && (previous.equals(",") || previous.length() == 0))
            {
                arguments.add(new CompoundVariable());
            }
            else if (!arg.equals(","))
            {
                try
                {
                    CompoundVariable compoundArg = new CompoundVariable();
                    compoundArg.setParameters(URLDecoder.decode(arg));
                    arguments.add(compoundArg);
                }
                catch (InvalidVariableException e)
                {
                }
            }
            previous = arg;
        }

        if (previous.equals(","))
        {
            arguments.add(new CompoundVariable());
        }

        return arguments;
    }
*/

    protected JMeterVariables getVariables()
    {
        return JMeterContextService.getContext().getVariables();
    }
}
TOP

Related Classes of org.apache.jmeter.functions.AbstractFunction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.