source: tol/TolJava/WebTOLJavaDEMO/web/Ejemplos.jsp @ 9887b93

1941-docker-image-to-testdevel
Last change on this file since 9887b93 was 9887b93, checked in by Humberto Carralero <hacarralero@…>, 15 years ago

Importing TolJava

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@3900 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 98.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3    Document   : Docs
4    Created on : Nov 28, 2010, 1:55:24 PM
5    Author     : hcarralero
6-->
7<jsp:root version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:webuijsf="http://www.sun.com/webui/webuijsf">
8    <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
9    <f:view>
10        <webuijsf:page id="page1">
11            <webuijsf:html id="html1">
12                <webuijsf:head id="head1" title="TOLJava-WebDEMO==&gt; Programas Ejemplos">
13                    <webuijsf:link id="link1" url="/resources/stylesheet.css"/>
14                    <webuijsf:script type="text/javascript" url="sh/scripts/shCore.js"/>
15                    <webuijsf:script type="text/javascript" url="sh/scripts/shBrushJava.js"/>
16                    <webuijsf:link id="link2" rel="stylesheet" type="text/css" url="sh/styles/shCore.css"/>
17                    <webuijsf:link id="link3" rel="stylesheet" type="text/css" url="sh/styles/shThemeDefault.css"/>
18                </webuijsf:head>
19                <webuijsf:body id="body1" style="background-color: rgb(224, 224, 255); -rave-layout: grid">
20                    <webuijsf:form id="form1">
21                        <div style="left: 0px; top: 0px; position: absolute; width: 100%">
22                            <jsp:directive.include file="Encabezado.jspf"/>
23                        </div>
24                        <div style="left: 2px; top: 68px; position: absolute; width: 200px">
25                            <jsp:directive.include file="MenuIzquierdo.jspf"/>
26                        </div>
27                        <h:panelGrid id="pnlDocs" style="border: 1px solid navy; left: 202px; top: 68px; position: absolute">
28                            <webuijsf:staticText id="staticText1"
29                                style="border-bottom: solid navy 1px; background-color: rgb(204, 204, 255); color: navy; font-size: 18px; font-variant: small-caps; font-weight: bolder; height: 28px; text-align: center; width: 100%" text="Proyecto TOLJava: Programas de Ejemplo para Consola"/>
30                            <h:panelGrid id="gridPanel1" style="border-top: solid navy 1px; height: 4px; width: 100%"/>
31                            <webuijsf:tabSet id="tabSet1" selected="tab1">
32                                <webuijsf:tab id="tab1" text="Ejemplo #1">
33                                    <h:panelGrid id="gridPanel2">
34                                        <webuijsf:staticText id="staticText4"
35                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Verificación del acceso a TOL"/>
36                                        <webuijsf:staticText id="staticText5" style="font-size: 12px; margin-left: 10px; text-align: justify" text="En este programa se muestra cómo chequear que se tiene acceso a una instancia de TOL."/>
37                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
38                                            package com.hcarralero.toljava.ejemplos;
39
40                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
41                                            //para este ejemplo sólo se requiere la clase TOLMachine
42                                            import com.hcarralero.toljava.TOLMachine;
43
44                                            /**
45                                             * Primer Ejemplo de TOLJava para Consola:
46                                             *  1) Se crea una instancia de TOLMachine.
47                                             *  2) Se ejecuta una sentencia TOL.
48                                             *  3) Se procesa el resultado.
49                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
50                                             *
51                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
52                                             * @version 1.0
53                                             * @see com.hcarralero.toljava.TOLMachine
54                                             */
55                                            public class Ejemplo01 {
56
57                                                /**
58                                                 * @param args los argumenetos de la línea de comandos.
59                                                 */
60                                                public static void main(String[] args) {
61                                                    //Se crea una instancia de la clase TOLMachine.
62                                                    TOLMachine tm= new TOLMachine();
63                                                    //En una cadena se almacena el código TOL que se ejecutará.
64                                                    String code= "Write(\"Hola. Bienvenido a TOLJava.\")";
65                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
66                                                    //El resultado es un arreglo de cadenas Object.
67                                                    Object res[]= tm.execute(code);
68                                                    System.out.println();
69                                                    if (res==null) {
70                                                        //Si el resultado es nulo, entonces se ha producido un erroe en el acceso a TOL.
71                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
72                                                    } else {
73                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
74                                                        int ne= 0;
75                                                        try {
76                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
77                                                            ne= Integer.parseInt((String)res[0]);
78                                                            if (ne>0) {
79                                                                //El intérprete de TOL reportó al menos un error.
80                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
81                                                            } else {
82                                                                //El intérprete de TOL no reportó errores.
83                                                                System.out.println("No se han detectado errores");
84                                                            }
85                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
86                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
87                                                            //Para procesar los mensajes generados debe comprender el formato de
88                                                            //estos mensajes. (Consulte la documentación de TOL).
89                                                            for (int i= 1; i<res.length; ++i) {
90                                                                //Cada objeto es una cadena.
91                                                                String strRes= (String)res[i];
92                                                                //Se obtiene la longitud de la cadena.
93                                                                int l= strRes.length();
94                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
95                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
96                                                                    System.out.println("\t"+strRes.substring(3, l-5));
97                                                                } else {
98                                                                    //En este caso es un mensaje común.
99                                                                    System.out.println("\t"+strRes);
100                                                                }
101                                                            }
102                                                        } catch (NumberFormatException ex) {
103                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
104                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
105                                                        }
106                                                    }
107                                                }
108
109                                            }
110                                        ]]></script>
111                                        <webuijsf:script type="text/javascript">
112                                            SyntaxHighlighter.all()
113                                        </webuijsf:script>
114                                    </h:panelGrid>
115                                </webuijsf:tab>
116                                <webuijsf:tab id="tab2" text="Ejemplo #2">
117                                    <h:panelGrid id="gridPanel3">
118                                        <webuijsf:staticText id="staticText3"
119                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Acceso a Variables de TOL"/>
120                                        <webuijsf:staticText id="staticText6" style="font-size: 12px; margin-left: 10px; text-align: justify" text="Este programa muestra cómo definir variables en TOL, acceder a ellas para obtener su valor, así como cambiar el mismo."/>
121                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
122                                            package com.hcarralero.toljava.ejemplos;
123
124                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
125                                            //para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLReal y TOLText.
126                                            import com.hcarralero.toljava.TOLMachine;
127                                            import com.hcarralero.toljava.TOLMachineException;
128                                            import com.hcarralero.toljava.TOLReal;
129                                            import com.hcarralero.toljava.TOLText;
130                                            /**
131                                             * Segundo Ejemplo de TOLJava para Consola:
132                                             *  1) Se crea una instancia de TOLMachine.
133                                             *  2) Se ejecuta una sentencia TOL para definir las variables x (Text) e y (Real).
134                                             *  3) Se procesa el resultado.
135                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
136                                             *  5) Se obtiene el valor de la variable x.
137                                             *  6) Se muestra el valor de la variable x.
138                                             *  7) Se cambia el valor de la variable x por un nuevo valor.
139                                             *  8) Se muestra el nuevo valor de la variable x.
140                                             *  9) Se obtiene el valor de la variable y.
141                                             *  10) Se muestra el valor de la variable y.
142                                             *  11) Se cambia el valor de la variable y por un nuevo valor.
143                                             *  12) Se muestra el nuevo valor de la variable y.
144                                             *
145                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
146                                             * @version 1.0
147                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLMachineException,
148                                             *      com.hcarralero.toljava.TOLReal, com.hcarralero.toljava.TOLText
149                                             */
150                                            public class Ejemplo02 {
151
152                                                /**
153                                                 * @param args los argumenetos de la línea de comandos.
154                                                 */
155                                                public static void main(String[] args) {
156                                                    //Se crea una instancia de la clase TOLMachine.
157                                                    TOLMachine tm= new TOLMachine();
158                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
159                                                    //el código es para definir las variables x de tipo Text e y de tipo Real.
160                                                    String code= "Text x=\"Hola. Bienvenido a TOLJava.\"; Real y= 3.5+7;";
161                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
162                                                    //El resultado es un arreglo de cadenas Object.
163                                                    Object res[]= tm.execute(code);
164                                                    System.out.println();
165                                                    if (res==null) {
166                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
167                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
168                                                    } else {
169                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
170                                                        int ne= 0;
171                                                        try {
172                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
173                                                            ne= Integer.parseInt((String)res[0]);
174                                                            if (ne>0) {
175                                                                //El intérprete de TOL reportó al menos un error.
176                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
177                                                            } else {
178                                                                //El intérprete de TOL no reportó errores.
179                                                                System.out.println("No se han detectado errores");
180                                                            }
181                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
182                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
183                                                            //Para procesar los mensajes generados debe comprender el formato de
184                                                            //estos mensajes. (Consulte la documentación de TOL).
185                                                            for (int i= 1; i<res.length; ++i) {
186                                                                //Cada objeto es una cadena
187                                                                String strRes= (String)res[i];
188                                                                //Se obtiene la longitud de la cadena.
189                                                                int l= strRes.length();
190                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
191                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
192                                                                    System.out.println("\t"+strRes.substring(3, l-5));
193                                                                } else {
194                                                                    //En este caso es un mensaje común.
195                                                                    System.out.println("\t"+strRes);
196                                                                }
197                                                            }
198                                                            //Se obtiene el valor de la variable x.
199                                                            Object objx= tm.getVariable("x");
200                                                            //Se imprime el valor de la variable x.
201                                                            System.out.println("Valor de x:["+objx+"]");
202                                                            //Se asigna un nuevo valor a x, el texto: "Hasta la vista TOL."
203                                                            tm.setVariableValue( "x", new TOLText("Hasta la vista TOL."));
204                                                            //Se obtiene nuevamente el valor de la variable x (ya modificado).
205                                                            objx= tm.getVariable("x");
206                                                            //Se imprime el nuevo valor de la variable x.
207                                                            System.out.println("NUEVO Valor de x:["+objx+"]");
208                                                            //Se obtiene el valor de la variable y.
209                                                            Object objy= tm.getVariable("y");
210                                                            //Se imprime el valor de la variable y.
211                                                            System.out.println("Valor de y:["+objy+"]");
212                                                            //Se asigna un nuevo valor a y, el número: 4567.89.
213                                                            tm.setVariableValue( "y", new TOLReal(4567.89));
214                                                            //Se obtiene nuevamente el valor de la variable y (ya modificado).
215                                                            objy= tm.getVariable("y");
216                                                            //Se imprime el nuevo valor de la variable y.
217                                                            System.out.println("NUEVO Valor de y:["+objy+"]");
218                                                        } catch (NumberFormatException ex) {
219                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
220                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
221                                                        } catch (TOLMachineException ex) {
222                                                            //Algún error ha ocurrido en el acceso a las variables de TOL.
223                                                            System.out.println("ERROR procesando la información introducida: "+ex.getMessage());
224                                                        }
225                                                    }
226                                                }
227                                            }
228                                        ]]></script>
229                                        <webuijsf:script type="text/javascript">
230                                            SyntaxHighlighter.all()
231                                        </webuijsf:script>
232                                    </h:panelGrid>
233                                </webuijsf:tab>
234                                <webuijsf:tab id="tab3" text="Ejemplo #3">
235                                    <h:panelGrid id="gridPanel4">
236                                        <webuijsf:staticText id="staticText7"
237                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Obtención de un listado de variables definidas en TOL"/>
238                                        <webuijsf:staticText id="staticText8" style="font-size: 12px; margin-left: 10px; text-align: justify" text="Este programa muestra cómo se puede obtener un listado de las variables de un tipo (Text, Real, Complex, etc.) que están definidas en TOL."/>
239                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
240                                            package com.hcarralero.toljava.ejemplos;
241
242                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
243                                            //para este ejemplo se requieren las clases: TOLMachine y TOLVariable.
244                                            import com.hcarralero.toljava.TOLMachine;
245                                            import com.hcarralero.toljava.TOLVariable;
246                                            /**
247                                             * Tercer Ejemplo de TOLJava para Consola:
248                                             *  1) Se crea una instancia de TOLMachine.
249                                             *  2) Se ejecuta una sentencia TOL para definir las variables mensaje1 (Text),
250                                             *     mensaje2 (Text), mensaje3 (Text), num1(Real), b (real) y fnac (Date).
251                                             *  3) Se procesa el resultado.
252                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
253                                             *  5) Se obtiene un arreglo con las varibale de tipo Text (podría ser similar
254                                             *     para cualquier otro tipo de dato.
255                                             *  6) Se recorre el arreglo obtenido y se muestra por pantalla.
256                                             *
257                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
258                                             * @version 1.0
259                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLVariable
260                                             */
261                                            public class Ejemplo03 {
262
263                                                /**
264                                                 * @param args los argumenetos de la línea de comandos.
265                                                 */
266                                                public static void main(String[] args) {
267                                                    //Se crea una instancia de la clase TOLMachine.
268                                                    TOLMachine tm= new TOLMachine();
269                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
270                                                    //el código es para definir las variables mensaje1 (Text),
271                                                    //mensaje2 (Text), mensaje3 (Text), num1(Real), b (real) y fnac (Date).
272                                                    String code= "Text mensaje1= \"Ejecutando el Test #3\";Text mensaje2=\"Hola.\"; Text mensaje3=\"Bienvenido a TOLJava.\"; Real num1= 3.5+7; Real b= 56.9; Date fnac=y1967m02d04";
273                                                    Object res[]= tm.execute(code);
274                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
275                                                    //El resultado es un arreglo de cadenas.
276                                                    System.out.println();
277                                                    if (res==null) {
278                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
279                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
280                                                    } else {
281                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
282                                                        int ne= 0;
283                                                        try {
284                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
285                                                            ne= Integer.parseInt((String)res[0]);
286                                                            if (ne>0) {
287                                                                //El intérprete de TOL reportó al menos un error.
288                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
289                                                            } else {
290                                                                //El intérprete de TOL no reportó errores.
291                                                                System.out.println("No se han detectado errores");
292                                                            }
293                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
294                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
295                                                            //Para procesar los mensajes generados debe comprender el formato de
296                                                            //estos mensajes. (Consulte la documentación de TOL).
297                                                            for (int i= 1; i<res.length; ++i) {
298                                                                //Cada objeto es una cadena
299                                                                String strRes= (String)res[i];
300                                                                //Se obtiene la longitud de la cadena.
301                                                                int l= strRes.length();
302                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
303                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
304                                                                    System.out.println("\t"+strRes.substring(3, l-5));
305                                                                } else {
306                                                                    //En este caso es un mensaje común.
307                                                                    System.out.println("\t"+strRes);
308                                                                }
309                                                            }
310                                                            //Se obtiene un listado de las variables tipo Text definidas en TOL.
311                                                            TOLVariable vars[]= tm.getTextVariables();
312                                                            if (vars==null) {
313                                                                //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
314                                                                System.out.println("ERROR DE ACCESO AL MÉTODO NATIVO: nativeGetTextVariables");
315                                                            } else {
316                                                                //Se obtiene el número de variables tipo Text.
317                                                                int nv= vars.length;
318                                                                if (nv>0) {
319                                                                    //En este caso se ha definido al menos una variable.
320                                                                    System.out.println("Se han definido "+nv+" variable(s) de tipo Text:");
321                                                                    //Iteramos sobre el arreglo de variables tipo Text definidas.
322                                                                    for (int i= 0; i<nv; ++i) {
323                                                                        //Cada elemento del arreglo es una variable.
324                                                                        TOLVariable var= vars[i];
325                                                                        //Nombre de la variable, se inicializa con un valor "basura".
326                                                                        String name= "NO_NAME";
327                                                                        //Valor de la variable, se inicializa con un valor "basura".
328                                                                        Object value= "NO_VALUE";
329                                                                        //Descripción de la variable, se inicializa a un valor "basura".
330                                                                        String desc= "NO_DESC";
331                                                                        if (var!=null) {
332                                                                            //La variable no es NULA (esto es lo CORRECTO).
333                                                                            if (var.getName()!=null) {
334                                                                                //Obtenemos el nombre de la variable (NO DEBERÍA SER NULO).
335                                                                                name= var.getName();
336                                                                            }
337                                                                            if (var.getValue()!=null) {
338                                                                                //Obtenenos el valor de la variable.
339                                                                                value= var.getValue();
340                                                                            }
341                                                                            if (var.getDesc()!=null) {
342                                                                                //Obtenemos la descripción (Pidiera ser vacía.
343                                                                                desc= var.getDesc();
344                                                                            }
345                                                                        }
346                                                                        //Se imprimen todos los atributos de la variabe: nombre. valor y descripción.
347                                                                        System.out.println("\t["+name+"]==>["+value.toString()+"]==>["+desc+"]");
348                                                                    }
349                                                                } else {
350                                                                    System.out.println("No se han definido Variables tipo Text");
351                                                                }
352                                                            }
353                                                            //Para hacer este proceso para otro tipo de variables, sólo debe usar el método adecuado; los
354                                                            //posibles métodos son: getRealVariables(), getComplexVariables(), ...;
355                                                        } catch (NumberFormatException ex) {
356                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
357                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
358                                                        }
359                                                    }
360                                                }
361
362                                            }
363                                        ]]></script>
364                                        <webuijsf:script type="text/javascript">
365                                            SyntaxHighlighter.all()
366                                        </webuijsf:script>
367                                    </h:panelGrid>
368                                </webuijsf:tab>
369                                <webuijsf:tab id="tab4" text="Ejemplo #4">
370                                    <h:panelGrid id="gridPanel5">
371                                        <webuijsf:staticText id="staticText9"
372                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Manejo de Objetos tipo TOLVMatrix"/>
373                                        <webuijsf:staticText id="staticText10" style="font-size: 12px; margin-left: 10px; text-align: justify" text="Este programa muestra cómo acceder desde Java a TOL y manejar variables de tipo TOLVMatrix; se ilustra como crear variables tipo VMatrix y como acceder a ellas para procesar sus datos en Java."/>
374                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
375                                            package com.hcarralero.toljava.ejemplos;
376
377                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
378                                            //para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLVMatrix y TOLVariable.
379                                            import com.hcarralero.toljava.TOLMachine;
380                                            import com.hcarralero.toljava.TOLMachineException;
381                                            import com.hcarralero.toljava.TOLVMatrix;
382                                            import com.hcarralero.toljava.TOLVariable;
383
384                                            /**
385                                             * Cuarto Ejemplo de TOLJava para Consola:
386                                             *  1) Se crea una instancia de TOLMachine.
387                                             *  2) Se ejecuta una sentencia TOL para definir 3 variables de tipo VMatrix: ma, mb y mc
388                                             *  3) Se procesa el resultado para determinar si se produjo algún error.
389                                             *  4) Se obtiene la variable "mc" definida en TOL y de ella se toma la matriz de sus valores.
390                                             *  4) Se recorre la matriz obtenida y se muestra por pantalla.
391                                             *
392                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
393                                             * @version 1.0
394                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLVariable
395                                             */
396                                            public class Ejemplo04 {
397
398                                                /**
399                                                 * @param args los argumenetos de la línea de comandos.
400                                                 */
401                                                public static void main(String[] args) {
402                                                    //Se crea una instancia de la clase TOLMachine.
403                                                    TOLMachine tm= new TOLMachine();
404                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
405                                                    //el código es para definir las variables tipo VMatrix: ma, mb y mc.
406                                                    String code= "VMatrix ma= Rand(4, 3, 0, 1); VMatrix mb= SetCol( [[2,3,4,7]] ) | SetCol( [[1,5,7,9]] ) | SetCol( [[3,2,0,1]] ); VMatrix mc=ma+mb;";
407                                                    Object res[]= tm.execute(code);
408                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
409                                                    //El resultado es un arreglo de cadenas.
410                                                    System.out.println();
411                                                    if (res==null) {
412                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
413                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
414                                                    } else {
415                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
416                                                        int ne= 0;
417                                                        try {
418                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
419                                                            ne= Integer.parseInt((String)res[0]);
420                                                            if (ne>0) {
421                                                                //El intérprete de TOL reportó al menos un error.
422                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
423                                                            } else {
424                                                                //El intérprete de TOL no reportó errores.
425                                                                System.out.println("No se han detectado errores");
426                                                                //Se obtiene de TOL la variable mc y se muestra por pantalla.
427                                                                TOLVariable varmc= tm.getVariable("mc");
428                                                                //Se hace cast al valor de la variable para convertirlo al tipo correcto: VMatrix.
429                                                                TOLVMatrix valmc= (TOLVMatrix)varmc.getValue();
430                                                                //Se obtiene el número filas y el de columnas de la matriz.
431                                                                int rows= valmc.getRows();
432                                                                int cols= valmc.getColumns();
433                                                                double values[][]= valmc.getValues();
434                                                                for (int i= 0; i<rows; ++i) {
435                                                                    //Se cambia de línea antes de cada fila
436                                                                    System.out.println();
437                                                                    for (int j= 0; j<cols; ++j) {
438                                                                        //Se imprime cada celda de la matriz
439                                                                        System.out.print(values[i][j]+"\t");
440                                                                    }
441                                                                }
442                                                            }
443                                                        } catch (NumberFormatException ex) {
444                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
445                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
446                                                        } catch (TOLMachineException ex) {
447                                                            //Se ha producido un error en el acceso a la Máquina Virtual de TOL.
448                                                            System.out.println("Error accediendo a TOL: "+ex.getMessage());
449                                                        }
450                                                    }
451                                                }
452                                            }]]></script>
453                                        <webuijsf:script type="text/javascript">
454                                            SyntaxHighlighter.all()
455                                        </webuijsf:script>
456                                    </h:panelGrid>
457                                </webuijsf:tab>
458                                <webuijsf:tab id="tab5" text="Ejemplo #5">
459                                    <h:panelGrid id="gridPanel6">
460                                        <webuijsf:staticText id="staticText12"
461                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Utilización de Variable de tipo TOLCode y llamada a funciones en TOL"/>
462                                        <webuijsf:staticText id="staticText13" style="font-size: 12px; margin-left: 10px; text-align: justify" text="Este programa muestra el manejo de variables de tipo TOLCode (obtención y modificación de su valor), así la realización de llamadas a funciones definidas en TOL."/>
463                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
464                                            package com.hcarralero.toljava.ejemplos;
465
466                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
467                                            //para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLReal y TOLCode.
468                                            import com.hcarralero.toljava.TOLMachine;
469                                            import com.hcarralero.toljava.TOLMachineException;
470                                            import com.hcarralero.toljava.TOLReal;
471                                            import com.hcarralero.toljava.TOLCode;
472                                            import com.hcarralero.toljava.TOLObject;
473
474                                            /**
475                                             * 5to Ejemplo de TOLJava para Consola:
476                                             *  1) Se crea una instancia de TOLMachine.
477                                             *  2) Se ejecuta una sentencia TOL para definir las funciones sumar y restar, así como las
478                                             *     la variable f de tipo Code con valor inicial sumar y la variable x de tipo Real.
479                                             *  3) Se procesa el resultado.
480                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
481                                             *  5) Se obtiene el valor de la variable f (debe ser el valor inicial "sumar").
482                                             *  6) Se muestra el valor de la variable f.
483                                             *  7) Se cambia el valor de la variable f por un nuevo valor: restar.
484                                             *  8) Se muestra el nuevo valor de la variable f.
485                                             *  9) Se crea un arreglo de objetos que servirá como lista de parámetros a la llamada a
486                                             *     la función f, el 1er parámetro es una constante de Tipo TOLReal y el 2do es una
487                                             *     cadena que representa el nombre de variable "x".
488                                             *  10) Se hace una llamada a la función f pasando como argumentos el nombre de
489                                             *      función "f" y el arreglo de parámetros.  El resultado es asignado a la variable r3.
490                                             *  11) Se muestra el valor de r3 que es resultado de invocar la función f.
491                                             *
492                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
493                                             * @version 1.0
494                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLMachineException,
495                                             *      com.hcarralero.toljava.TOLReal, com.hcarralero.toljava.TOLCode.
496                                             */
497                                            public class Ejemplo05 {
498
499                                                /**
500                                                 * @param args los argumenetos de la línea de comandos.
501                                                 */
502                                                public static void main(String[] args) {
503                                                    //Se crea una instancia de la clase TOLMachine.
504                                                    TOLMachine tm= new TOLMachine();
505                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
506                                                    //el código es para definir las funciones sumar y restar, así como la viariable f de tipo Code.
507                                                    String code= "Real sumar(Real a, Real b) {Real r= a+b; r}; Real restar(Real a, Real b) {Real r= a-b; r}; Code f= sumar; Real x=5;";
508                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
509                                                    //El resultado es un arreglo de cadenas Object.
510                                                    Object res[]= tm.execute(code);
511                                                    System.out.println();
512                                                    if (res==null) {
513                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
514                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
515                                                    } else {
516                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
517                                                        int ne= 0;
518                                                        try {
519                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
520                                                            ne= Integer.parseInt((String)res[0]);
521                                                            if (ne>0) {
522                                                                //El intérprete de TOL reportó al menos un error.
523                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
524                                                            } else {
525                                                                //El intérprete de TOL no reportó errores.
526                                                                System.out.println("No se han detectado errores");
527                                                            }
528                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
529                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
530                                                            //Para procesar los mensajes generados debe comprender el formato de
531                                                            //estos mensajes. (Consulte la documentación de TOL).
532                                                            for (int i= 1; i<res.length; ++i) {
533                                                                //Cada objeto es una cadena
534                                                                String strRes= (String)res[i];
535                                                                //Se obtiene la longitud de la cadena.
536                                                                int l= strRes.length();
537                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
538                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
539                                                                    System.out.println("\t"+strRes.substring(3, l-5));
540                                                                } else {
541                                                                    //En este caso es un mensaje común.
542                                                                    System.out.println("\t"+strRes);
543                                                                }
544                                                            }
545                                                            //Se obtiene el valor de la variable f (debe ser el valor inicial "sumar").
546                                                            Object objf= tm.getVariable("f");
547                                                            //Se imprime el valor de la variable f.
548                                                            System.out.println("Valor de f:["+objf+"]");
549                                                            //Se asigna un nuevo valor a f, la función "restar" (el valor de información no se tiene en cuenta).
550                                                            tm.setVariableValue( "f", new TOLCode("restar", null));
551                                                            //Se obtiene nuevamente el valor de la variable f (ya modificado debería ser "restar").
552                                                            objf= tm.getVariable("f");
553                                                            //Se imprime el nuevo valor de la variable f.
554                                                            System.out.println("NUEVO Valor de f:["+objf+"]");
555                                                            //Se crea un arreglo de objetos que servirá como lista de parámetros a la llamada a
556                                                            //la función f, el 1er parámetro es una constante de Tipo TOLReal y el 2do es una
557                                                            //cadena que representa el nombre de variable "x".
558                                                            Object pars[]= {new TOLReal(12), "x"};
559                                                            //Se hace una llamada a la función f pasando como argumentos el nombre de
560                                                            //función "f" y el arreglo de parámetros. El resultado es asignado a la variable r3.
561                                                            TOLObject or3= tm.callCode("f", pars);
562                                                            TOLReal r3= (TOLReal)or3;
563                                                            //Se muestra el valor de r3 que es resultado de invocar la función f.
564                                                            System.out.println("f(12, x)="+r3);
565                                                        } catch (NumberFormatException ex) {
566                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
567                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
568                                                        } catch (TOLMachineException ex) {
569                                                            //Algún error ha ocurrido en el acceso a la variable f.
570                                                            System.out.println("ERROR accediendo a la variable f: "+ex.getMessage());
571                                                        }
572                                                    }
573                                                }
574                                            }
575                                        ]]></script>
576                                        <webuijsf:script type="text/javascript">
577                                            SyntaxHighlighter.all()
578                                        </webuijsf:script>
579                                    </h:panelGrid>
580                                </webuijsf:tab>
581                                <webuijsf:tab id="tab6" text="Ejemplo #6">
582                                    <h:panelGrid id="gridPanel7">
583                                        <webuijsf:staticText id="staticText14"
584                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Definición de una variable tipo Serie y acceso a items específicos de la misma"/>
585                                        <webuijsf:staticText id="staticText15" style="font-size: 12px; margin-left: 10px; text-align: justify" text="Este programa muestra cómo definir una serie y los dos métodos disponibles para acceder a sus datos."/>
586                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
587                                            package com.hcarralero.toljava.ejemplos;
588
589                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
590                                            //para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLDate y TOLDateException.
591                                            import com.hcarralero.toljava.TOLMachine;
592                                            import com.hcarralero.toljava.TOLMachineException;
593                                            import com.hcarralero.toljava.TOLDate;
594                                            import com.hcarralero.toljava.TOLDateException;
595
596                                            /**
597                                             * 6to Ejemplo de TOLJava para Consola:
598                                             *  1) Se crea una instancia de TOLMachine.
599                                             *  2) Se ejecuta una sentencia TOL para definir la serie ser1.
600                                             *  3) Se procesa el resultado.
601                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
602                                             *  5) Se obtiene el valor (val1) de la serie en una fecha específica.
603                                             *  6) Se muestra val1.
604                                             *  7) Se obtiene el valor (val2) de la serie en una posición específica indicada por un índice.
605                                             *  8) Se muestra val2.
606                                             *
607                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
608                                             * @version 1.0
609                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLMachineException,
610                                             *      com.hcarralero.toljava.TOLReal, com.hcarralero.toljava.TOLCode.
611                                             */
612                                            public class Ejemplo06 {
613
614                                                /**
615                                                 * @param args los argumenetos de la línea de comandos.
616                                                 */
617                                                public static void main(String[] args) {
618                                                    //Se crea una instancia de la clase TOLMachine.
619                                                    TOLMachine tm= new TOLMachine();
620                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
621                                                    //el código es para definir una serie.
622                                                    String code= "Serie ser1 = SubSer( Gaussian( 0, 1 ), y2009m1d1, y2009m12d31 );";
623                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
624                                                    //El resultado es un arreglo de cadenas Object.
625                                                    Object res[]= tm.execute(code);
626                                                    System.out.println();
627                                                    if (res==null) {
628                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
629                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
630                                                    } else {
631                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
632                                                        int ne= 0;
633                                                        try {
634                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
635                                                            ne= Integer.parseInt((String)res[0]);
636                                                            if (ne>0) {
637                                                                //El intérprete de TOL reportó al menos un error.
638                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
639                                                            } else {
640                                                                //El intérprete de TOL no reportó errores.
641                                                                System.out.println("No se han detectado errores");
642                                                            }
643                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
644                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
645                                                            //Para procesar los mensajes generados debe comprender el formato de
646                                                            //estos mensajes. (Consulte la documentación de TOL).
647                                                            for (int i= 1; i<res.length; ++i) {
648                                                                //Cada objeto es una cadena
649                                                                String strRes= (String)res[i];
650                                                                //Se obtiene la longitud de la cadena.
651                                                                int l= strRes.length();
652                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
653                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
654                                                                    System.out.println("\t"+strRes.substring(3, l-5));
655                                                                } else {
656                                                                    //En este caso es un mensaje común.
657                                                                    System.out.println("\t"+strRes);
658                                                                }
659                                                            }
660                                                            //Se crea una variable fecha con valor dentro del rango de fechas de la serie
661                                                            TOLDate date= new TOLDate(2009, 3, 11);
662                                                            //Se obtiene el valor de la serie en la fecha escogida
663                                                            double val1= tm.getSerieValue("ser1", date);
664                                                            //Se imprime el valor obtenido
665                                                            System.out.println("Valor de val1:["+val1+"]");
666                                                            //Se obtiene el valor de la serie en la posición 2 (tercer elemento de la serie)
667                                                            double val2= tm.getSerieValue("ser1", 2);
668                                                            //Se imprime el valor obtenido
669                                                            System.out.println("Valor de val2:["+val2+"]");
670                                                        } catch (NumberFormatException ex) {
671                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
672                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
673                                                        } catch (TOLMachineException ex) {
674                                                            //Algún error ha ocurrido en el acceso a la variable f.
675                                                            System.out.println("ERROR accediendo a la serie ser1: "+ex.getMessage());
676                                                        } catch (TOLDateException ex) {
677                                                            //Algún error ha ocurrido en el manejo de la variable de fecha (date).
678                                                            System.out.println("ERROR accediendo a la serie ser1: "+ex.getMessage());
679                                                        }
680                                                    }
681                                                }
682                                            }
683                                        ]]></script>
684                                        <webuijsf:script type="text/javascript">
685                                            SyntaxHighlighter.all()
686                                        </webuijsf:script>
687                                    </h:panelGrid>
688                                </webuijsf:tab>
689                                <webuijsf:tab id="tab7" text="Ejemplo #7">
690                                    <h:panelGrid id="gridPanel8">
691                                        <webuijsf:staticText id="staticText16"
692                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Obtención de un conjunto de elementos de una serie"/>
693                                        <webuijsf:staticText id="staticText17" style="font-size: 12px; margin-left: 10px; text-align: justify" text="En este programa se muestra cómo obtener un conjunto de valores de una serie usando los dos métodos posibles, a partir de una fecha o de una posición."/>
694                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
695                                            package com.hcarralero.toljava.ejemplos;
696
697                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
698                                            //para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLReal y TOLCode.
699                                            import com.hcarralero.toljava.TOLMachine;
700                                            import com.hcarralero.toljava.TOLMachineException;
701                                            import com.hcarralero.toljava.TOLDate;
702                                            import com.hcarralero.toljava.TOLDateException;
703                                            import com.hcarralero.toljava.TSItem;
704                                            import java.util.Calendar;
705                                            import java.util.Date;
706
707                                            /**
708                                             * 7mo Ejemplo de TOLJava para Consola:
709                                             *  1) Se crea una instancia de TOLMachine.
710                                             *  2) Se ejecuta una sentencia TOL para definir la serie ser1.
711                                             *  3) Se procesa el resultado.
712                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
713                                             *  5) Se obtiene un arreglo de valores (tsis1) de la serie a partir una fecha específica.
714                                             *  6) Se muestran los valores obtenidos.
715                                             *  7) Se obtiene un arreglo de valores (tsis2) de la serie a partir una posición específica.
716                                             *  8) Se muestran los valores obtenidos.
717                                             *
718                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
719                                             * @version 1.0
720                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLMachineException,
721                                             *      com.hcarralero.toljava.TOLReal, com.hcarralero.toljava.TOLCode.
722                                             */
723                                            public class Ejemplo07 {
724
725                                                /**
726                                                 * @param args los argumenetos de la línea de comandos.
727                                                 */
728                                                public static void main(String[] args) {
729                                                    //Se crea una instancia de la clase TOLMachine.
730                                                    TOLMachine tm= new TOLMachine();
731                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
732                                                    //el código es para definir una serie con todos los valores.
733                                                    String code= "Serie ser1 = SubSer( Gaussian( 0, 1 ), y2009m1d1, y2009m12d31 );";
734                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
735                                                    //El resultado es un arreglo de cadenas Object.
736                                                    Object res[]= tm.execute(code);
737                                                    System.out.println();
738                                                    if (res==null) {
739                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
740                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
741                                                    } else {
742                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
743                                                        int ne= 0;
744                                                        try {
745                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
746                                                            ne= Integer.parseInt((String)res[0]);
747                                                            if (ne>0) {
748                                                                //El intérprete de TOL reportó al menos un error.
749                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
750                                                            } else {
751                                                                //El intérprete de TOL no reportó errores.
752                                                                System.out.println("No se han detectado errores");
753                                                            }
754                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
755                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
756                                                            //Para procesar los mensajes generados debe comprender el formato de
757                                                            //estos mensajes. (Consulte la documentación de TOL).
758                                                            for (int i= 1; i<res.length; ++i) {
759                                                                //Cada objeto es una cadena
760                                                                String strRes= (String)res[i];
761                                                                //Se obtiene la longitud de la cadena.
762                                                                int l= strRes.length();
763                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
764                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
765                                                                    System.out.println("\t"+strRes.substring(3, l-5));
766                                                                } else {
767                                                                    //En este caso es un mensaje común.
768                                                                    System.out.println("\t"+strRes);
769                                                                }
770                                                            }
771                                                            //Se crea una variable fecha con valor dentro del rango de fechas de la serie
772                                                            TOLDate date= new TOLDate(2009, 3, 11);
773                                                            //Se obtiene un arreglo de a lo sumo 10 valores de la serie a partir de la fecha dada
774                                                            TSItem tsis1[]= tm.getSerieItems("ser1", date, 10);
775                                                            //Se imprime el número real de elementos obtenidos (pudiera ser inferior a 10)
776                                                            System.out.println("Número de elementos leídos: "+tsis1.length);
777                                                            //Se crea una variable calendario usado para posteriormente imprimir las fechas de la serie
778                                                            Calendar cal= Calendar.getInstance();
779                                                            //Se recorre el arreglo obtenido
780                                                            for (int i= 0; i<tsis1.length; ++i) {
781                                                                //Se obtiene la fecha de cada item
782                                                                TOLDate tsid= tsis1[i].getDate();
783                                                                //Se establece en el calendario la fecha obtenida para su impresión
784                                                                cal.set(tsid.getYear(), tsid.getMonth(), tsid.getDay(), tsid.getHour(), tsid.getMinute(), (int)tsid.getSecond());
785                                                                //Se imprime la fecha y el valor de cada item de la serie
786                                                                System.out.println("["+new Date(cal.getTimeInMillis()).toString()+"]==>["+tsis1[i].getValue()+"]");
787                                                            }
788                                                            //Se obtiene un arreglo de a lo sumo 15 valores de la serie a partir de la posición dada
789                                                            TSItem tsis2[]= tm.getSerieItems("ser1", 0, 15);
790                                                            //Se imprime el número real de elementos obtenidos (pudiera ser inferior a 15)
791                                                            System.out.println("Número de elementos leídos: "+tsis2.length);
792                                                            //Se recorre el arreglo obtenido
793                                                            for (int i= 0; i<tsis2.length; ++i) {
794                                                                //Se obtiene la fecha de cada item
795                                                                TOLDate tsid= tsis2[i].getDate();
796                                                                //Se establece en el calendario la fecha obtenida para su impresión
797                                                                cal.set(tsid.getYear(), tsid.getMonth(), tsid.getDay(), tsid.getHour(), tsid.getMinute(), (int)tsid.getSecond());
798                                                                //Se imprime la fecha y el valor de cada item de la serie
799                                                                System.out.println("["+new Date(cal.getTimeInMillis()).toString()+"]==>["+tsis2[i].getValue()+"]");
800                                                            }
801                                                        } catch (NumberFormatException ex) {
802                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
803                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
804                                                        } catch (TOLMachineException ex) {
805                                                            //Algún error ha ocurrido en el acceso a la variable f.
806                                                            System.out.println("ERROR accediendo a la serie ser1: "+ex.getMessage());
807                                                        } catch (TOLDateException ex) {
808                                                            //Algún error ha ocurrido en el manejo de la variable de fecha (date).
809                                                            System.out.println("ERROR accediendo a la serie ser1: "+ex.getMessage());
810                                                        }
811                                                    }
812                                                }
813                                            }
814                                        ]]></script>
815                                        <webuijsf:script type="text/javascript">
816                                            SyntaxHighlighter.all()
817                                        </webuijsf:script>
818                                    </h:panelGrid>
819                                </webuijsf:tab>
820                                <webuijsf:tab id="tab8" text="Ejemplo #8">
821                                    <h:panelGrid id="gridPanel9">
822                                        <webuijsf:staticText id="staticText18"
823                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Obtención del primer y último elemento de un TimeSet (intervalo acotado)"/>
824                                        <webuijsf:staticText id="staticText19" style="font-size: 12px; margin-left: 10px; text-align: justify" text="Este programa muestra el acceso a variables de tipo TimeSet desde Java; se define un TimeSet correspondiente a todos los lunes del año 2011 y luego se muestra el primer y último lunes del 2011."/>
825                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
826                                            package com.hcarralero.toljava.ejemplos;
827
828                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
829                                            //para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLDate y TOLDateException.
830                                            import com.hcarralero.toljava.TOLMachine;
831                                            import com.hcarralero.toljava.TOLMachineException;
832                                            import com.hcarralero.toljava.TOLDate;
833                                            import com.hcarralero.toljava.TOLDateException;
834                                            import java.util.Calendar;
835                                            import java.util.Date;
836
837                                            /**
838                                             * 8vo Ejemplo de TOLJava para Consola:
839                                             *  1) Se crea una instancia de TOLMachine.
840                                             *  2) Se ejecuta una sentencia TOL para definir el TimeSet ts1.
841                                             *  3) Se procesa el resultado.
842                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
843                                             *  5) Se obtiene la primera fecha de ts1 y se muestra por pantalla.
844                                             *  6) Se obtiene la última fecha de ts1 y se muestra por pantalla.
845                                             *
846                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
847                                             * @version 1.0
848                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLMachineException,
849                                             *      com.hcarralero.toljava.TOLReal, com.hcarralero.toljava.TOLCode.
850                                             */
851                                            public class Ejemplo08 {
852
853                                                /**
854                                                 * @param args los argumenetos de la línea de comandos.
855                                                 */
856                                                public static void main(String[] args) {
857                                                    //Se crea una instancia de la clase TOLMachine.
858                                                    TOLMachine tm= new TOLMachine();
859                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
860                                                    //el código es para definir un TimeSet que representa a "todos los lunes del año 2011"
861                                                    String code= "TimeSet ts1= WD(1)*Y(2011);";
862                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
863                                                    //El resultado es un arreglo de cadenas Object.
864                                                    Object res[]= tm.execute(code);
865                                                    System.out.println();
866                                                    if (res==null) {
867                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
868                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
869                                                    } else {
870                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
871                                                        int ne= 0;
872                                                        try {
873                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
874                                                            ne= Integer.parseInt((String)res[0]);
875                                                            if (ne>0) {
876                                                                //El intérprete de TOL reportó al menos un error.
877                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
878                                                            } else {
879                                                                //El intérprete de TOL no reportó errores.
880                                                                System.out.println("No se han detectado errores");
881                                                            }
882                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
883                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
884                                                            //Para procesar los mensajes generados debe comprender el formato de
885                                                            //estos mensajes. (Consulte la documentación de TOL).
886                                                            for (int i= 1; i<res.length; ++i) {
887                                                                //Cada objeto es una cadena
888                                                                String strRes= (String)res[i];
889                                                                //Se obtiene la longitud de la cadena.
890                                                                int l= strRes.length();
891                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
892                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
893                                                                    System.out.println("\t"+strRes.substring(3, l-5));
894                                                                } else {
895                                                                    //En este caso es un mensaje común.
896                                                                    System.out.println("\t"+strRes);
897                                                                }
898                                                            }
899                                                            //Se crea una variable calendario usado para posteriormente imprimir las fechas del TimeSet
900                                                            Calendar cal= Calendar.getInstance();
901                                                            //Para obtener la fecha inicial usaremos una fecha que sabemos es anterior a la primera fecha del TimeSet
902                                                            TOLDate f1= new TOLDate(2010, 12, 31);
903                                                            //Se obtiene la primera fecha del TimeSet buscando el sucesor de una fecha del año anterior
904                                                            TOLDate fini= tm.getTimeSetNextDate("ts1", f1);
905                                                            //Se establece en el calendario la fecha obtenida para su impresión
906                                                            cal.set(fini.getYear(), fini.getMonth()-1, fini.getDay(), fini.getHour(), fini.getMinute(), (int)fini.getSecond());
907                                                            //Se imprime la primera fecha del TimeSet
908                                                            System.out.println("Fecha Inicial==> ["+new Date(cal.getTimeInMillis()).toString()+"]");
909                                                            //Para obtener la fecha final usaremos una fecha que sabemos es posterior a la última fecha del TimeSet
910                                                            TOLDate f2= new TOLDate(2012, 1, 1);
911                                                            //Se obtiene la última fecha del TimeSet buscando el antecesor de una fecha del año siguiente
912                                                            TOLDate ffin= tm.getTimeSetPrevDate("ts1", f2);
913                                                            //Se establece en el calendario la fecha obtenida para su impresión
914                                                            cal.set(ffin.getYear(), ffin.getMonth()-1, ffin.getDay(), ffin.getHour(), ffin.getMinute(), (int)ffin.getSecond());
915                                                            //Se imprime la primera fecha del TimeSet
916                                                            System.out.println("Fecha Final==> ["+new Date(cal.getTimeInMillis()).toString()+"]");
917                                                        } catch (NumberFormatException ex) {
918                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
919                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
920                                                        } catch (TOLMachineException ex) {
921                                                            //Algún error ha ocurrido en el acceso a la variable f.
922                                                            System.out.println("ERROR accediendo al TimeSet ts1: "+ex.getMessage());
923                                                        } catch (TOLDateException ex) {
924                                                            //Algún error ha ocurrido en el manejo de la variable de fecha (date).
925                                                            System.out.println("ERROR accediendo al TimeSet ts1: "+ex.getMessage());
926                                                        }
927                                                    }
928                                                }
929                                            }
930                                        ]]></script>
931                                        <webuijsf:script type="text/javascript">
932                                            SyntaxHighlighter.all()
933                                        </webuijsf:script>
934                                    </h:panelGrid>
935                                </webuijsf:tab>
936                                <webuijsf:tab id="tab9" text="Ejemplo #9">
937                                    <h:panelGrid id="gridPanel10">
938                                        <webuijsf:staticText id="staticText20"
939                                            style="font-size: 12px; font-weight: bolder; margin-left: 10px; text-decoration: underline" text="Manipulación de un conjunto"/>
940                                        <webuijsf:staticText id="staticText21" style="font-size: 12px; margin-left: 10px; text-align: justify" text="Este programa muestra la manipulación de una variable tipo Set de TOL desde Java; las operaciones ilustradas son la obtención del tamaño, el acceso a un elemento específico y la obtención en un arreglo de todos los elementos del conjunto."/>
941                                        <script class="brush: java; toolbar: false;" type="syntaxhighlighter"><![CDATA[
942                                            package com.hcarralero.toljava.ejemplos;
943
944                                            //Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
945                                            //para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLDate y TOLDateException.
946                                            import com.hcarralero.toljava.TOLMachine;
947                                            import com.hcarralero.toljava.TOLMachineException;
948                                            import com.hcarralero.toljava.TOLObject;
949
950                                            /**
951                                             * 9no Ejemplo de TOLJava para Consola:
952                                             *  1) Se crea una instancia de TOLMachine.
953                                             *  2) Se ejecuta una sentencia TOL para definir el Set set1.
954                                             *  3) Se procesa el resultado.
955                                             *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
956                                             *  5) Se obtiene el elemento de la posición 3 y se muestra.
957                                             *  6) Se obtiene el tamaño de set1 y se muestra.
958                                             *  7) Se obtienen todos los elementos del conjunto y se muestran.
959                                             *
960                                             * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
961                                             * @version 1.0
962                                             * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLMachineException,
963                                             *      com.hcarralero.toljava.TOLReal, com.hcarralero.toljava.TOLCode.
964                                             */
965                                            public class Ejemplo09 {
966
967                                                /**
968                                                 * @param args los argumenetos de la línea de comandos.
969                                                 */
970                                                public static void main(String[] args) {
971                                                    //Se crea una instancia de la clase TOLMachine.
972                                                    TOLMachine tm= new TOLMachine();
973                                                    //En una cadena se almacena el código TOL que se ejecutará; en este caso
974                                                    //el código es para definir un Set de 5 números reales"
975                                                    String code= "Set  set1 = SetOfDate(y1995m12d3, y1996m11d15, y1994m1d4, y1994m12d04);";
976                                                    //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
977                                                    //El resultado es un arreglo de cadenas Object.
978                                                    Object res[]= tm.execute(code);
979                                                    System.out.println();
980                                                    if (res==null) {
981                                                        //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
982                                                        System.out.println("ERROR ACCEDIENDO A TOL->execute");
983                                                    } else {
984                                                        //Se ha logrado acceder al intérprete y ejecutar el código.
985                                                        int ne= 0;
986                                                        try {
987                                                            //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
988                                                            ne= Integer.parseInt((String)res[0]);
989                                                            if (ne>0) {
990                                                                //El intérprete de TOL reportó al menos un error.
991                                                                System.out.println("Se ha(n) detectado "+ne+" error(es)");
992                                                            } else {
993                                                                //El intérprete de TOL no reportó errores.
994                                                                System.out.println("No se han detectado errores");
995                                                            }
996                                                            //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
997                                                            //Warnings, Errores o mensajes generados por el código TOL ejecutado.
998                                                            //Para procesar los mensajes generados debe comprender el formato de
999                                                            //estos mensajes. (Consulte la documentación de TOL).
1000                                                            for (int i= 1; i<res.length; ++i) {
1001                                                                //Cada objeto es una cadena
1002                                                                String strRes= (String)res[i];
1003                                                                //Se obtiene la longitud de la cadena.
1004                                                                int l= strRes.length();
1005                                                                if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
1006                                                                    //En este caso el mensaje es un 'W'arning o un 'E'rror.
1007                                                                    System.out.println("\t"+strRes.substring(3, l-5));
1008                                                                } else {
1009                                                                    //En este caso es un mensaje común.
1010                                                                    System.out.println("\t"+strRes);
1011                                                                }
1012                                                            }
1013                                                            //Se obtiene el tercer elemento de set1
1014                                                            TOLObject to= tm.getSetElement("set1", 3);
1015                                                            //Se imprime el tercer elemento de set1
1016                                                            System.out.println("Tercer elemento de set1=> ["+to.toString()+"]");
1017                                                            //Se obtiene el tamaño de set1
1018                                                            int size= tm.getSetSize("set1");
1019                                                            //Se imprime el tamaño de set1
1020                                                            System.out.println("Tamaño de set1=> ["+size+"]");
1021                                                            //Se obtienen todos los elementos del conjunto
1022                                                            TOLObject tos[]= tm.getSetElements("set1");
1023                                                            //Se imprime el arreglo que contiene los elementos del conjunto
1024                                                            System.out.println("Elementos de set1:");
1025                                                            for (int i= 0; i<tos.length; ++i) {
1026                                                                System.out.println("\tset1("+(i+1)+")==>"+tos[i].toString());
1027                                                            }
1028                                                        } catch (NumberFormatException ex) {
1029                                                            //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
1030                                                            System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
1031                                                        } catch (TOLMachineException ex) {
1032                                                            //Algún error ha ocurrido en el acceso a la variable f.
1033                                                            System.out.println("ERROR accediendo al Set set1: "+ex.getMessage());
1034                                                        }
1035                                                    }
1036                                                }
1037                                            }
1038                                        ]]></script>
1039                                        <webuijsf:script type="text/javascript">
1040                                            SyntaxHighlighter.all()
1041                                        </webuijsf:script>
1042                                    </h:panelGrid>
1043                                </webuijsf:tab>
1044                            </webuijsf:tabSet>
1045                        </h:panelGrid>
1046                    </webuijsf:form>
1047                </webuijsf:body>
1048            </webuijsf:html>
1049        </webuijsf:page>
1050    </f:view>
1051</jsp:root>
Note: See TracBrowser for help on using the repository browser.