Some java cleaning.
[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 representation on the Scilab List datatype
20  * <br>
21  * Example:<br />
22  * <code>
23  * ScilabList data = new ScilabList();<br />
24  * data.add(new ScilabString("hello"));<br />
25  * data.add(new ScilabDouble(2));<br />
26  * </code>
27  * @see org.scilab.modules.javasci.Scilab
28  */
29 public class ScilabList extends ArrayList<ScilabType> implements ScilabType {
30         
31         private static final long serialVersionUID = 6884293176289980909L;
32
33         /**
34          * Construct an empty Scilab list.
35          */
36         public ScilabList() {
37                 super();
38         }
39
40         /**
41          * Construct a list containing the elements of the specified collection, in
42          * the order that they are returned by the specified collection's iterator.
43          * 
44          * @param c
45          *                      the collection whose elements are to be placed into this list.
46          */
47         public ScilabList(Collection< ? extends ScilabType> c) {
48                 super(c);
49         }
50         
51         /**
52          * @return 1 when there is data on the list, 0 otherwise.
53          * @see org.scilab.modules.types.ScilabType#getHeight()
54          */
55         @Override
56         public int getHeight() {
57                 if (isEmpty()) {
58                         return 0;
59                 }
60                 return 1;
61         }
62
63         /**
64          * @return 1 when there is data on the list, 0 otherwise.
65          * @see org.scilab.modules.types.ScilabType#getWidth()
66          */
67         @Override
68         public int getWidth() {
69                 if (isEmpty()) {
70                         return 0;
71                 }
72                 return size();
73         }
74
75         /**
76          * Display the representation in the Scilab language of the type<br />
77          * Note that the representation can be copied/pasted straight into Scilab 
78      *
79          * @return the pretty-printed data 
80          * @see java.util.AbstractCollection#toString()
81          */
82         @Override
83         public String toString() {
84
85                 StringBuffer result = new StringBuffer();
86                 if (isEmpty()) {
87                         result.append("list()");
88                         return result.toString();
89                 }
90
91                 result.append("list(");
92                 for (int i = 0; i < size(); i++) {
93                         result.append(get(i));
94                         if (i != size() - 1) {
95                                 result.append(", ");
96                         }
97                 }
98                 result.append(")");
99
100                 return result.toString();
101         }
102 }