With examples and documentation as javadoc comments
[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         /**
32          * Construct an empty Scilab list.
33          */
34         public ScilabList() {
35                 super();
36         }
37
38         /**
39          * Construct a list containing the elements of the specified collection, in
40          * the order that they are returned by the specified collection's iterator.
41          * 
42          * @param c
43          *                      the collection whose elements are to be placed into this list.
44          */
45         public ScilabList(Collection< ? extends ScilabType> c) {
46                 super(c);
47         }
48         
49         /**
50          * @return 1 when there is data on the list, 0 otherwise.
51          * @see org.scilab.modules.types.ScilabType#getHeight()
52          */
53         public int getHeight() {
54                 if (isEmpty()) {
55                         return 0;
56                 }
57                 return 1;
58         }
59
60         /**
61          * @return 1 when there is data on the list, 0 otherwise.
62          * @see org.scilab.modules.types.ScilabType#getWidth()
63          */
64         public int getWidth() {
65                 if (isEmpty()) {
66                         return 0;
67                 }
68                 return size();
69         }
70
71         /**
72          * Display the representation in the Scilab language of the type
73          * @return the pretty-printed data 
74          * @see java.util.AbstractCollection#toString()
75          */
76         public String toString() {
77
78                 StringBuffer result = new StringBuffer();
79                 if (isEmpty()) {
80                         result.append("list()");
81                         return result.toString();
82                 }
83
84                 result.append("list(");
85                 for (int i = 0; i < size(); i++) {
86                         result.append(get(i).toString());
87                         if (i != size() - 1) {
88                                 result.append(", ");
89                         }
90                 }
91                 result.append(")");
92
93                 return result.toString();
94         }
95 }