Package org.apache.jmeter.protocol.jdbc.control

Source Code of org.apache.jmeter.protocol.jdbc.control.JdbcTestSample

/*
* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation.  All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache JMeter" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache JMeter", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation.  For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.jmeter.protocol.jdbc.control;

import org.apache.jmeter.control.GenericController;
import org.apache.jmeter.protocol.jdbc.config.*;
import org.apache.jmeter.protocol.jdbc.control.gui.*;
import org.apache.jmeter.config.ConfigElement;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.CycleEntry;
import org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler;
import java.util.*;

/**
* Title:
* Description:
* Copyright:    Copyright (c) 2001
* Company:
* @author Michael Stover
* @version 1.0
*/

public class JdbcTestSample extends GenericController
{

  private DbConfig defaultDbConfig;
  private PoolConfig defaultPoolConfig;
  private List sqls;
  private Iterator sqlIterator;

  private static Set addableList = new HashSet();
  static
  {
    addableList.add(new SqlConfig().getClassLabel());
  }

  public JdbcTestSample()
  {
    sqls = new LinkedList();
    defaultPoolConfig = new PoolConfig();
    defaultDbConfig = new DbConfig();
  }

  public PoolConfig getDefaultPoolConfig()
  {
    return defaultPoolConfig;
  }

  public DbConfig getDefaultDbConfig()
  {
    return defaultDbConfig;
  }

  public void setDefaultPoolConfig(PoolConfig config)
  {
    this.defaultPoolConfig = config;
  }

  public void setDefaultDbConfig(DbConfig config)
  {
    this.defaultDbConfig = config;
  }

  public void uncompile()
  {
    super.uncompile();
    sqls.clear();
    sqlIterator = null;
  }

  public String getClassLabel()
  {
    return "Database Testing";
  }

  public Class getGuiClass()
  {
    return org.apache.jmeter.protocol.jdbc.control.gui.JdbcTestSampleGui.class;
  }

  public Class getTagHandlerClass()
  {
    return org.apache.jmeter.protocol.jdbc.save.JdbcTestSampleHandler.class;
  }

  public Collection getAddList()
  {
    return addableList;
  }

  public Object clone() {
    JdbcTestSample control = new JdbcTestSample();
    control.setDefaultPoolConfig(defaultPoolConfig);
    control.setDefaultDbConfig(defaultDbConfig);
    Iterator iter = sqls.iterator();
    while (iter.hasNext()) {
      control.addConfigElement((ConfigElement) iter.next());
    }
    this.standardCloneProc(control);
    return control;
  }

  public void addConfigElement(ConfigElement config) {
    if (config instanceof SqlConfig) {
      sqls.add(config);
    }
    else {
      this.getConfigElements().add(config);
    }
  }

  public Entry nextEntry()
  {
    Entry entry = null;
    if(!init())
    {
      entry = null;
    }
    if(sqlIterator.hasNext())
    {
      entry = createEntry((ConfigElement)sqlIterator.next());
    }
    else
    {
      sqlIterator = null;
      entry = new CycleEntry();
    }
    return entry;
  }

  protected boolean init()
  {
    if(sqls.size() == 0)
    {
      return false;
    }
    if(sqlIterator == null)
    {
      sqlIterator = sqls.iterator();
    }
    return true;
  }

  public List getSqlList()
  {
    return this.sqls;
  }

  private Entry createEntry(ConfigElement element) {
    Entry entry = new Entry();
    entry.setSamplerClass(JDBCSampler.class);
    entry.addConfigElement(element);
    entry.addConfigElement(defaultPoolConfig);
    entry.addConfigElement(defaultDbConfig);
    for (Iterator iterB = this.getConfigElements().iterator(); iterB.hasNext(); ) {
      entry.addConfigElement((ConfigElement) iterB.next());
    }
    return entry;
  }

}
TOP

Related Classes of org.apache.jmeter.protocol.jdbc.control.JdbcTestSample

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.