# Class CSVDataSet

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.config.ConfigTestElement
org.apache.jmeter.config.CSVDataSet

All Implemented Interfaces:
  `Serializable, Cloneable, ConfigElement, LoopIterationListener, NoConfigMerge, Searchable, TestBean, TestElement`

public class CSVDataSet extends ConfigTestElement implements TestBean, LoopIterationListener, NoConfigMerge
Read lines from a file and split int variables. The iterationStart() method is used to set up each set of values. By default, the same file is shared between all threads (and other thread groups, if they use the same file name). The shareMode can be set to:

- All threads - default, as described above
- Current thread group
- Current thread
- Identifier - all threads sharing the same identifier

The class uses the FileServer alias mechanism to provide the different share modes. For all threads, the file alias is set to the file name. Otherwise, a suffix is appended to the filename to make it unique within the required context. For current thread group, the thread group identityHashcode is used; for individual threads, the thread hashcode is used as the suffix. Or the user can provide their own suffix, in which case the file is shared between all threads with the same suffix.

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from class ConfigTestElement

`PASSWORD, USERNAME`

### Fields inherited from interface TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

## Constructor Summary

Constructors
Constructor
Description
`CSVDataSet()`

## Method Summary

Modifier and Type
Method
Description
`String`
`getDelimiter()`
`String`
`getFileEncoding()`
`String`
`getFilename()`
`boolean`
`getQuotedData()`
`boolean`
`getRecycle()`
`String`
`getShareMode()`
`boolean`
`getStopThread()`
`String`
`getVariableNames()`
`void`
`iterationStart(LoopIterationEvent iterEvent)`
Called when a loop iteration is about to start.
`void`
`setDelimiter(String delimiter)`
`void`
`setFileEncoding(String fileEncoding)`
`void`
`setFilename(String filename)`
`void`
`setProperty(JMeterProperty property)`
Override the setProperty method in order to convert the original String shareMode property.
`void`
`setQuotedData(boolean quoted)`
`void`
`setRecycle(boolean recycle)`
`void`
`setShareMode(String value)`
`void`
`setStopThread(boolean value)`
`void`
`setVariableNames(String variableNames)`

### Methods inherited from class ConfigTestElement

`addConfigElement, addTestElement, expectsModification`

### Methods inherited from class AbstractTestElement

`addPropertiesValues, addProperty, addProperty, canRemove, clear, clearTemporary, clearTestElementChildren, clone, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

### Methods inherited from class Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface ConfigElement

`clone`

## Constructor Details

### CSVDataSet

public CSVDataSet()

## Method Details

### setProperty

public void setProperty(JMeterProperty property)
Override the setProperty method in order to convert the original String shareMode property. This used the locale-dependent display value, so caused problems when the language was changed. If the "shareMode" value matches a resource value then it is converted into the resource key. To reduce the need to look up resources, we only attempt to convert values with spaces in them, as these are almost certainly not variables (and they are definitely not resource keys).

Specified by:
  `setProperty` in interface `TestElement`
Overrides:
  `setProperty` in class `AbstractTestElement`
Parameters:
  `property` - the property to be set

### iterationStart

public void iterationStart(LoopIterationEvent iterEvent)
Description copied from interface: `LoopIterationListener`
Called when a loop iteration is about to start.

Specified by:
  `iterationStart` in interface `LoopIterationListener`
Parameters:
  `iterEvent` - the event

### getFilename

public String getFilename()

Returns:
  Returns the filename.

### setFilename

public void setFilename(String filename)

Parameters:
  `filename` - The filename to set.

### getFileEncoding

public String getFileEncoding()

Returns:
  Returns the file encoding.

### setFileEncoding

public void setFileEncoding(String fileEncoding)

Parameters:
  `fileEncoding` - The fileEncoding to set.

### getVariableNames

public String getVariableNames()

Returns:
  Returns the variableNames.

### setVariableNames

public void setVariableNames(String variableNames)

Parameters:
  `variableNames` - The variableNames to set.

### getDelimiter

public String getDelimiter()

### setDelimiter

public void setDelimiter(String delimiter)

### getQuotedData

public boolean getQuotedData()

### setQuotedData

public void setQuotedData(boolean quoted)

### getRecycle

public boolean getRecycle()

### setRecycle

public void setRecycle(boolean recycle)

### getStopThread

public boolean getStopThread()

### setStopThread

public void setStopThread(boolean value)

### getShareMode

public String getShareMode()

### setShareMode

public void setShareMode(String value)