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 SortableArray implements Sortable {
019        protected Object[] array;
020        protected int n;
021    
022        public SortableArray (Object[] array) {
023            this.array = array;
024            this.n = array.length;
025        }
026    
027        public SortableArray (Object[] array, int n) {
028            this.array = array;
029            this.n = n;
030        }
031    
032        public Object get (int i) {
033            return array[i];
034        }
035    
036        public void set (int i, Object o) {
037            array[i] = o;
038        }
039    
040        public int size () {
041            return n;
042        }
043    
044        public void swap (int i, int j) {
045            Object tmp = array[i];
046            array[i] = array[j];
047            array[j] = tmp;
048        }
049    
050        public int compare (Object o1, Object o2) {
051            return o1.toString().compareTo (o2.toString ());
052        }
053    }