package clist; import clist.visitor.ICLVisitor; /** * @dependency clist.visitor.ICLVisitor */ public class CLList { /** @SBGen Variable (,,,64) */ private ANode _clockwiseHead; /** @SBGen Variable (,,,64) */ private ANode _counterwiseHead; /** @SBGen Constructor */ public CLList() { _clockwiseHead = NullNode.Singleton; _counterwiseHead = NullNode.Singleton; } /** * @param clockwiseHead * @param counterwiseHead */ CLList(ANode counterwiseHead, ANode clockwiseHead) { _clockwiseHead = clockwiseHead; _clockwiseHead.setCounterwiseParent (this); _counterwiseHead = counterwiseHead; _counterwiseHead.setClockwiseParent (this); } public Object clockwiseDat() { return _clockwiseHead.clockwiseDat (this); } public Object counterwiseDat() { return _counterwiseHead.counterwiseDat (this); } /** * @param dat */ public void insertClockwise(Object dat) { _clockwiseHead.insertClockwise (dat, this); } public void insertCounterwise(Object dat) { _counterwiseHead.insertCounterwise(dat, this); } public Object remClockwise() { return _clockwiseHead.remClockwise(this); } public Object remCounterwise() { return _counterwiseHead.remCounterwise(this); } public CLList clockwiseTail() { return _clockwiseHead.clockwiseTail (this); } public CLList counterwiseTail() { return _counterwiseHead.counterwiseTail(this); } public Object execClockwise(ICLVisitor algo, CLList start, Object input) { return _clockwiseHead.execClockwise (algo, start, input, this); } public Object execCounterwise(ICLVisitor algo, CLList start, Object input) { return _counterwiseHead.execCounterwise (algo, start, input, this); } /** * @param node */ void setClockwiseHead(ANode node) { _clockwiseHead = node; _clockwiseHead.setCounterwiseParent (this); } /** * @param node */ void setCounterwiseHead(ANode node) { _counterwiseHead = node; _counterwiseHead.setClockwiseParent (this); } ANode clockwiseHead() { return _clockwiseHead; } ANode counterwiseHead() { return _counterwiseHead; } }