package com.plectix.simulator.simulationclasses.action;
import com.plectix.simulator.staticanalysis.Rule;
/**
* This class implements Action type:<br>
* <li><b>NONE</b> - none action type:<br>
* Example:<br>
* <code>A(x)->A(x)</code>, creates action with <code>NONE</code> type.
* </li>
*
* <li><b>BREAK</b> - break action type:<br>
* Example:<br>
* <code>A(x!1),B(y!1)->A(x),B(y)</code>, creates 2 actions
* with <code>BREAK</code> type for site "x" from agent "A" and site "y" from
* agent "B".
* </li>
*
* <li><b>DELETE</b> - delete action type:<br>
* Example:<br>
* <code>A(x)-></code>, creates action with <code>DELETE</code> type for agent "A".
* </li>
*
* <li><b>ADD</b> - add action type:<br>
* Example:<br>
* <code>->A(x)</code>, creates action <code>ADD</code> type for agent "A".
* </li>
*
* <li><b>BOUND</b> - bound action type:<br>
* Example:<br>
* <code>A(x),B(y)->A(x!1),B(y!1)</code>, creates 2 actions
* with <code>BOUND</code> type for site "x" from agent "A" and site "y" from
* agent "B".
* </li>
*
* <li><b>MODIFY</b> - modify action type:<br>
* Example:<br>
* <code>A(x~q)->A(x~fi)</code>, creates action <code>MODIFY</code> type for site "x"
* from agent "A".
* </li>
*
* <br><br>
* It's atomic action type, but reality rule contains difficult expression, who should be
* convert to atomic actions.
* @author avokhmin
* @see Rule
*
*/
public enum ActionType implements Comparable<ActionType> {
NONE,
BREAK,
DELETE,
ADD,
BOUND,
MODIFY;
}