package jvstm.test.jwormbench;
import jvstm.UtilUnsafe;
import jvstm.ReadWriteTransaction;
import jvstm.Transaction;
import jvstm.VBox;
import jvstm.AomBarriers;
import jwormbench.core.INode;
import jwormbench.core.IWorm;
/**
* Abstracts the node object within the BenchWorld.
*
* @author F. Miguel Carvalho mcarvalho[@]cc.isel.pt
*/
public class BenchWorldNodeVBox implements INode{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ---------------------- FIELDS ---------------------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
protected VBox<Integer> value = new VBox<Integer>();
protected IWorm worm;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ------------------- CONSTRUCTOR -----------------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public BenchWorldNodeVBox(int value){
this.value.put(value);
worm = null;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ------------------- PROPERTIES -----------------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/**
* @see wormbench.INode#getValue()
*/
public int getValue() {
return this.value.get();
}
/**
* @see wormbench.INode#setValue(int)
*/
public void setValue(int value) {
this.value.put(value);
}
/**
* @see wormbench.INode#getWorm()
*/
public IWorm getWorm() {
return worm;
}
/**
* @see wormbench.INode#setWorm(IWorm)
*/
public void setWorm(IWorm w) {
this.worm = w;
/*
if(worm.get() != w && worm.get() != null && w!= null)
throw new NodeAlreadyOccupiedException(
String.format("Worm %s can not move to node with worm %s", w.getName(), worm.get().getName()));
worm.put(w);
*/
}
}