001 package lrs.visitor; 002 import lrs.*; 003 // This visitor appends a value to the end of a list 004 public class LRSAppend implements IAlgo 005 { 006 public static LRSAppend Singleton = new LRSAppend(); 007 008 private LRSAppend() 009 { 010 } 011 012 public Object emptyCase(LRStruct host, Object... param) 013 { 014 // The empty node is the end of the list, so insert the new data here. 015 host.insertFront(param[0]); 016 return(null); 017 } 018 019 public Object nonEmptyCase(LRStruct host, Object... param) 020 { 021 // The non-empty node is not the end of the list, so recurse. 022 return host.getRest().execute(this,param); 023 } 024 }