Fix some problems in the output of List, MList & TList
[scilab.git] / scilab / modules / types / src / java / org / scilab / modules / types / ScilabList.java
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2009-2009 - DIGITEO - Bruno JOFRET
4  * 
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  * 
11  */
12
13 package org.scilab.modules.types;
14
15 import java.util.ArrayList;
16 import java.util.Collection;
17
18 /**
19  * This class provides a wrapping on the Scilab List datatype
20  */
21 public class ScilabList extends ArrayList<ScilabType> implements ScilabType {
22         
23         /**
24          * Construct an empty Scilab list.
25          */
26         public ScilabList() {
27                 super();
28         }
29
30         /**
31          * Construct a list containing the elements of the specified collection, in
32          * the order that they are returned by the specified collection's iterator.
33          * 
34          * @param c
35          *                      the collection whose elements are to be placed into this list.
36          */
37         public ScilabList(Collection< ? extends ScilabType> c) {
38                 super(c);
39         }
40         
41         /**
42          * @return 1 when there is data on the list, 0 otherwise.
43          * @see org.scilab.modules.types.ScilabType#getHeight()
44          */
45         public int getHeight() {
46                 if (isEmpty()) {
47                         return 0;
48                 }
49                 return 1;
50         }
51
52         /**
53          * @return 1 when there is data on the list, 0 otherwise.
54          * @see org.scilab.modules.types.ScilabType#getWidth()
55          */
56         public int getWidth() {
57                 if (isEmpty()) {
58                         return 0;
59                 }
60                 return size();
61         }
62
63         /**
64          * Display the representation in the Scilab language of the type
65          * @return the pretty-printed data 
66          * @see java.util.AbstractCollection#toString()
67          */
68         public String toString() {
69
70                 StringBuffer result = new StringBuffer();
71                 if (isEmpty()) {
72                         result.append("list()");
73                         return result.toString();
74                 }
75
76                 result.append("list(");
77                 for (int i = 0; i < size(); i++) {
78                         result.append(get(i).toString());
79                         if (i != size() - 1) {
80                                 result.append(", ");
81                         }
82                 }
83                 result.append(")");
84
85                 return result.toString();
86         }
87 }