package lrs.visitor; import lrs.*; /** * Merges the sorted input list into the sorted host list. In the end, host is sorted. * @author Dung X. Nguyen - Copyright 1999 - All rights reserved. * @dependency Becomes uses */ public class Merger implements IAlgo { /** @SBGen Singleton Variable */ public final static Merger Singleton = new Merger (); /** @SBGen Constructor */ private Merger() { } /** * @param host * @param input * @return */ public Object nullCase(LRStruct host, Object input) { return host.execute (Becomes.Singleton, input); } /** * @param host * @param input * @return */ public Object nonNullCase(LRStruct host, Object input) { return ((LRStruct)input).execute (MergeHelper.Singleton, host); } public static void main(String[] args) { LRStruct l1 = new LRStruct (); l1.insertFront (new Integer (263)); l1.insertFront (new Integer (15)); l1.insertFront (new Integer (-9)); l1.insertFront (new Integer (-72)); System.out.print ("l1: " + l1); System.out.println(); LRStruct l2 = new LRStruct (); /* //Testing base case. System.out.println ("Merging l1 into l2..."); l2.execute (Merger.Singleton, l1); System.out.println ("l1: " + l1); System.out.println ("l2: " + l2); */ l2.insertFront (new Integer (48)); l2.insertFront (new Integer (0)); l2.insertFront (new Integer (-2)); System.out.print ("l2: " + l2); System.out.println(); System.out.println ("Merging l1, l2..."); l1.execute (Merger.Singleton, l2); System.out.println ("l1: " + l1); System.out.println ("l2: " + l2); System.out.println(); try { System.out.println ("Press Enter to quit..."); System.in.read (); } catch (Exception e) { } } }