logger.log(BasicLevel.INFO, "========================");
}
void applyOperation(int operation, StateTransitionObj stobj)
{
StateTransitionObj obj = (StateTransitionObj) stobj;
switch( operation ){
case MAKEPERSISTENT:
{
pm.makePersistent(obj);
break;
}
case DELETEPERSISTENT:
{
pm.deletePersistent(obj);
break;
}
case MAKETRANSACTIONAL:
{
pm.makeTransactional(obj);
break;
}
case MAKENONTRANSACTIONAL:
{
pm.makeNontransactional(obj);
break;
}
case MAKETRANSIENT:
{
pm.makeTransient(obj);
break;
}
case COMMITNORETAINVALUES:
{
pm.currentTransaction().commit();
break;
}
case COMMITRETAINVALUES:
{
pm.currentTransaction().commit();
break;
}
case ROLLBACKNORETAINVALUES:
{
pm.currentTransaction().rollback();
break;
}
case ROLLBACKRETAINVALUES:
{
pm.currentTransaction().rollback();
break;
}
case REFRESHDATASTORE:
{
pm.refresh(obj);
break;
}
case REFRESHOPTIMISTIC:
{
pm.refresh(obj);
break;
}
case EVICT:
{
pm.evict(obj);
break;
}
case READOUTSIDETX:
{
int val = obj.readField();
break;
}
case READOPTIMISTIC:
{
int val = obj.readField();
break;
}
case READDATASTORE:
{
int val = obj.readField();
break;
}
case WRITEOUTSIDETX:
{
obj.writeField(42);
break;
}
case WRITEINSIDETX:
{
obj.writeField(42);
break;
}
default:
{
logger.log(BasicLevel.ERROR, "StateTransitions internal error, illegal operation "+operation);