001
002 package lrs.visitor;
003
004 import lrs.visitor.*;
005 import lrs.*;
006 import logic.*;
007
008 public class GetMax extends AGetExtrema {
009
010 public static GetMax Singleton = new GetMax();
011
012 private GetMax()
013 {
014 }
015 /**
016 * @param host
017 * @param param
018 */
019 public Object emptyCase(LRStruct host, Object... param)
020 {
021 return(Integer.MIN_VALUE); // The empty list has a valid return object that will always fail a compare.
022 }
023
024
025 /**
026 * @param host
027 * @param param
028 */
029 public Object nonEmptyCase(LRStruct host, Object... param)
030 {
031 Integer tmp = (Integer) host.getRest().execute(this, param); // Get the min of the rest of the list
032
033 //return the data that passes the compare test.
034 // if(tmp.intValue() > ((Integer)host.getFirst()).intValue()) return (tmp);
035 // else return (host.getFirst());
036
037 return BooleanFactory.Singleton.makeBoolean(tmp > (Integer) host.getFirst()).execute(BooleanChoice.Singleton, tmp, host.getFirst());
038
039 }
040 }
041