001 package lrs.visitor;
002
003 import lrs.IAlgo;
004 import lrs.LRStruct;
005
006 /**
007 * Clears this LRStruct.
008 *
009 * @author Mathias Ricken
010 */
011 public class Clear implements IAlgo {
012 /// singleton instance
013 public static final Clear Singleton = new Clear();
014
015 /// private singleton ctor
016 private Clear() {
017 }
018
019 /**
020 * Operates on an empty LRStruct host, given an input object.
021 *
022 * @param host an empty LRStruct.
023 * @param inp not used
024 *
025 * @return the empty LRStruct
026 */
027 public Object emptyCase(LRStruct host, Object inp) {
028 // done
029 return host;
030 }
031
032 /**
033 * Operates on a non-empty LRStruct host, given an input object.
034 *
035 * @param host a non-empty LRStruct.
036 * @param inp input object needed by this IAlgo.
037 *
038 * @return an appropriate output object.
039 */
040 public Object nonEmptyCase(LRStruct host, Object inp) {
041 // set rest to empty
042 host.setRest(new LRStruct());
043 // remove front
044 host.removeFront();
045 return host;
046 }
047 }