001    package lrs.visitor;
002    
003    import lrs.*;
004    import logic.*;
005    
006    
007    public class LRSOrderedInsert implements IAlgo
008    {
009     public static LRSOrderedInsert Singleton = new LRSOrderedInsert();
010    
011     private LRSOrderedInsert()
012     {
013     }
014    
015     public Object emptyCase(LRStruct host, Object... param)
016     {
017      host.insertFront(param[0]);
018        return null;
019     }
020    
021     public Object nonEmptyCase(final LRStruct host, final Object... param)
022     {
023     
024       BooleanFactory.Singleton.makeBoolean(((Integer) host.getFirst()) > ((Integer) param[0])).
025         execute( new IBooleanAlgo() {
026         public Object trueCase(IBoolean h, Object... inp) {
027           return host.insertFront(param[0]);
028         }
029         public Object falseCase(IBoolean h, Object... inp) {
030           return host.getRest().execute(LRSOrderedInsert.this, param);
031         }
032       });
033       
034    //  if (((Integer) host.getFirst()).intValue() > ((Integer) param[0]).intValue()) 
035    //  { 
036    //   host.insertFront(param);
037    //  }
038    //  else
039    //  {
040    //   host.getRest().execute(this, param);
041    //  }
042        return null;
043     }
044    }
045