Changeset 4262


Ignore:
Timestamp:
10/09/03 15:20:52 (19 years ago)
Author:
piso
Message:

appendContents()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/AbstractArray.java

    r3929 r4262  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: AbstractArray.java,v 1.10 2003-09-20 17:01:58 piso Exp $
     5 * $Id: AbstractArray.java,v 1.11 2003-10-09 15:20:52 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    7373
    7474    public abstract void setRowMajor(int index, LispObject newValue) throws ConditionThrowable;
     75
     76    // Helper for toString().
     77    protected void appendContents(int[] dimensions, int index, StringBuffer sb)
     78    {
     79        try {
     80            if (dimensions.length == 0) {
     81                sb.append(getRowMajor(index));
     82            } else {
     83                sb.append('(');
     84                int[] dims = new int[dimensions.length - 1];
     85                for (int i = 1; i < dimensions.length; i++)
     86                    dims[i-1] = dimensions[i];
     87                int count = 1;
     88                for (int i = 0; i < dims.length; i++)
     89                    count *= dims[i];
     90                int length = dimensions[0];
     91                for (int i = 0; i < length; i++) {
     92                    if (i != 0)
     93                        sb.append(' ');
     94                    appendContents(dims, index, sb);
     95                    index += count;
     96                }
     97                sb.append(')');
     98            }
     99        }
     100        catch (ConditionThrowable t) {
     101            Debug.trace(t);
     102        }
     103    }
    75104}
Note: See TracChangeset for help on using the changeset viewer.