001 /* 002 * LAPIS lightweight structured text processing system 003 * 004 * Copyright (C) 1998-2002 Carnegie Mellon University, 005 * Copyright (C) 2003 Massachusetts Institute of Technology. 006 * All rights reserved. 007 * 008 * This library is free software; you can redistribute it 009 * and/or modify it under the terms of the GNU General 010 * Public License as published by the Free Software 011 * Foundation, version 2. 012 * 013 * LAPIS homepage: http://graphics.lcs.mit.edu/lapis/ 014 */ 015 016 package lapisx.sort; 017 018 public class StringSortableList implements SortableList { 019 String value; 020 SortableList nextPtr; 021 022 public StringSortableList (String value, SortableList nextPtr) { 023 this.value = value; 024 this.nextPtr = nextPtr; 025 } 026 027 public Object get () { return value; } 028 029 public SortableList next () { return nextPtr; } 030 031 public void setNext (SortableList l) { nextPtr = l; } 032 033 public int compareTo (SortableList l) { 034 return value.compareTo ((String)l.get ()); 035 } 036 037 public void dump () { 038 System.out.print (value + " "); 039 if (nextPtr != null) 040 ((StringSortableList)nextPtr).dump (); 041 } 042 043 public static StringSortableList make (String[] words) { 044 return make (words, 0); 045 } 046 047 private static StringSortableList make (String[] words, int i) { 048 if (i >= words.length) 049 return null; 050 return new StringSortableList (words[i], make (words, i+1)); 051 } 052 053 }