1 cananian 1.3.2.5 // LabelList.java, created Tue Jul 28 1:09:44 1998 by cananian 2 cananian 1.3.2.4 // Copyright (C) 1998 C. Scott Ananian <cananian@alumni.princeton.edu> 3 cananian 1.3.2.4 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 cananian 1.2 package harpoon.Temp; 5 cananian 1.1 6 cananian 1.3.2.7 import java.util.ArrayList; 7 cananian 1.3.2.7 import java.util.Collections; 8 pnkfelix 1.3.2.6 import java.util.List; 9 pnkfelix 1.3.2.6 10 cananian 1.3.2.2 /** 11 pnkfelix 1.3.2.6 A <code>LabelList</code> is a simple singly-linked list of 12 pnkfelix 1.3.2.6 <code>Label</code>s. 13 pnkfelix 1.3.2.6 14 pnkfelix 1.3.2.6 @deprecated Scott says so. Use a real <code>java.util.List</code> instead. 15 pnkfelix 1.3.2.6 @author C. Scott Ananian <cananian@alumni.princeton.edu> 16 cananian 1.5 @version $Id: LabelList.java,v 1.5 2004/02/08 01:59:46 cananian Exp $ 17 cananian 1.2 */ 18 cananian 1.3.2.1 public final class LabelList { 19 cananian 1.3.2.2 /* The head of the list. */ 20 pnkfelix 1.3.2.6 public final Label head; 21 cananian 1.3.2.2 /* The tail of the list. */ 22 pnkfelix 1.3.2.6 public final LabelList tail; 23 cananian 1.3.2.2 /* Constructor. */ 24 pnkfelix 1.3.2.6 public LabelList(Label head, LabelList tail){ 25 pnkfelix 1.3.2.6 this.head=head; this.tail=tail; 26 pnkfelix 1.3.2.6 } 27 pnkfelix 1.3.2.6 28 pnkfelix 1.3.2.6 /** Converts a <code>LabelList</code> to a <code>java.util.List</code>. 29 pnkfelix 1.3.2.6 Accepts <code>null</code> as an argument (which will 30 cananian 1.3.2.7 return an empty list). 31 pnkfelix 1.3.2.6 */ 32 cananian 1.5 public static List<Label> toList(final LabelList l) { 33 cananian 1.5 if (l==null) return (List<Label>) Collections.EMPTY_LIST; // optimization. 34 cananian 1.5 ArrayList<Label> al = new ArrayList<Label>(); 35 cananian 1.3.2.7 for (LabelList ll=l; ll!=null; ll=ll.tail) 36 cananian 1.3.2.7 al.add(ll.head); 37 cananian 1.5 al.trimToSize(); 38 cananian 1.3.2.7 return Collections.unmodifiableList(al); 39 pnkfelix 1.3.2.6 } 40 cananian 1.1 } 41 cananian 1.1