# Class CheckDirty

java.lang.Object
org.apache.jmeter.gui.action.AbstractAction
org.apache.jmeter.gui.action.CheckDirty

All Implemented Interfaces:
  `ActionListener, EventListener, Command, HashTreeTraverser`

public class CheckDirty extends AbstractAction implements HashTreeTraverser, ActionListener
Check if the TestPlan has been changed since it was last saved

## Constructor Summary

Constructors
Constructor
Description
`CheckDirty()`

## Method Summary

Modifier and Type
Method
Description
`void`
`actionPerformed(ActionEvent e)`
`void`
`addNode(Object node, HashTree subTree)`
The tree traverses itself depth-first, calling addNode for each object it encounters as it goes.
`void`
`doAction(ActionEvent e)`
`Set<String>`
`getActionNames()`
`void`
`processPath()`
Process path is called when a leaf is reached.
`void`
`subtractNode()`
Indicates traversal has moved up a step, and the visitor should remove the top node from it's stack structure.

### Methods inherited from class AbstractAction

`popupShouldSave`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CheckDirty

public CheckDirty()

## Method Details

### actionPerformed

public void actionPerformed(ActionEvent e)

Specified by:
  `actionPerformed` in interface `ActionListener`

### doAction

public void doAction(ActionEvent e)

Specified by:
  `doAction` in interface `Command`
Overrides:
  `doAction` in class `AbstractAction`
See Also:
  - `Command.doAction(ActionEvent)`

### addNode

public void addNode(Object node, HashTree subTree)
The tree traverses itself depth-first, calling addNode for each object it encounters as it goes.

Specified by:
  `addNode` in interface `HashTreeTraverser`
Parameters:
  `node` - the node currently encountered
  `subTree` - the HashTree under the node encountered

### subtractNode

public void subtractNode()
Indicates traversal has moved up a step, and the visitor should remove the top node from it's stack structure.

Specified by:
  `subtractNode` in interface `HashTreeTraverser`

### processPath

public void processPath()
Process path is called when a leaf is reached. If a visitor wishes to generate Lists of path elements to each leaf, it should keep a Stack data structure of nodes passed to it with addNode, and removing top items for every subtractNode() call.

Specified by:
  `processPath` in interface `HashTreeTraverser`

### getActionNames

public Set<String> getActionNames()

Specified by:
  `getActionNames` in interface `Command`
Specified by:
  `getActionNames` in class `AbstractAction`
See Also:
  - `Command.getActionNames()`