96ee9b9a7dd1cdfb982cbc5ec8d5b6edcf9f55de
[scilab.git] / scilab / modules / types / src / java / org / scilab / modules / types / scilabTypes / ScilabBoolean.java
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2009-2009 - DIGITEO - Bruno JOFRET
4  *  Copyright (C) 2010-2010 - DIGITEO - ClĂ©ment DAVID
5  * 
6  *  This file must be used under the terms of the CeCILL.
7  *  This source file is licensed as described in the file COPYING, which
8  *  you should have received as part of this distribution.  The terms
9  *  are also available at
10  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11  * 
12  */
13
14 package org.scilab.modules.types.scilabTypes;
15
16 /**
17  * This class provides a wrapping on the Scilab boolean datatype
18  */
19 public class ScilabBoolean implements ScilabType {
20
21         /* the boolean data */
22     private boolean[][] data;
23
24     /**
25      * Create an empty object
26          */
27     public ScilabBoolean() {
28                 data = null;
29     }
30     
31     /**
32      * Create an object from an array of array of boolean
33      *
34      * @param data the array of boolean
35          */
36     public ScilabBoolean(boolean[][] data) {
37                 this.data = data;
38     }
39     
40     /**
41      * Create a scalar boolean from a boolean
42      *
43      * @param value the boolean
44          */
45     public ScilabBoolean(boolean value) {
46                 this.data = new boolean[1][1];
47                 this.data[0][0] = value;
48     }
49
50     /**
51      * Change the value with the provided data
52      *
53      * @param data array of boolean
54          */
55     public void setData(boolean[][] data) {
56                 this.data = data;
57     }
58
59     /**
60      * Return the data
61      *
62      * @return the array of array of boolean
63          */
64     public boolean[][] getData() {
65                 return data;
66     }
67
68     /**
69      * Return the height (number of element) of the stored data
70      *
71      * @return the height
72          */
73     public int getHeight() {
74                 if (data == null) {
75                         return 0;
76                 }
77                 return data.length;
78     }
79
80     /**
81      * Return the width (number of element) of the stored data
82      *
83      * @return the width
84          */
85     public int getWidth() {
86                 if (data == null) {
87                         return 0;
88                 }
89                 return data[0].length;
90     }
91
92     /**
93      * If it is empty / uninitialized
94      *
95      * @return true if empty
96          */
97     public boolean isEmpty() {
98         return (data == null);
99     }
100     
101
102     /**
103      * Display the matrix
104      *
105      * @return the pretty print
106          */
107         public String toString() {
108                 StringBuilder result = new StringBuilder();
109                 
110                 if (isEmpty()) {
111                         result.append("[]");
112                         return result.toString();
113                 }
114
115                 result.append("[");
116                 for (int i = 0; i < getHeight(); ++i) {
117                         for (int j = 0; j < getWidth(); ++j) {
118                                 if (getData()[i][j]) {
119                                         result.append("%t");
120                                 } else {
121                                         result.append("%f");
122                                 }
123                                 if (j != getWidth() - 1) {
124                                         result.append(", ");
125                                 }
126                         }
127                         if (i != getHeight() - 1) {
128                                 result.append(" ; ");
129                         }
130                 }
131                 result.append("]");
132                 return result.toString();
133         }
134 }