source: tol/TolJava/TOLJava-Ejemplos/src/com/hcarralero/toljava/ejemplos/Ejemplo07.java @ 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: 5.6 KB
Line 
1package com.hcarralero.toljava.ejemplos;
2
3//Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
4//para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLReal y TOLCode.
5import com.hcarralero.toljava.TOLMachine;
6import com.hcarralero.toljava.TOLMachineException;
7import com.hcarralero.toljava.TOLDate;
8import com.hcarralero.toljava.TOLDateException;
9import com.hcarralero.toljava.TSItem;
10import java.util.Calendar;
11import java.util.Date;
12
13/**
14 * 7mo Ejemplo de TOLJava para Consola:
15 *  1) Se crea una instancia de TOLMachine.
16 *  2) Se ejecuta una sentencia TOL para definir la serie ser1.
17 *  3) Se procesa el resultado.
18 *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
19 *  5) Se obtiene un arreglo de valores (tsis1) de la serie a partir una fecha específica.
20 *  6) Se muestran los valores obtenidos.
21 *
22 * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
23 * @version 1.0
24 * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLMachineException,
25 *      com.hcarralero.toljava.TOLReal, com.hcarralero.toljava.TOLCode.
26 */
27public class Ejemplo07 {
28
29    /**
30     * @param args los argumenetos de la línea de comandos.
31     */
32    public static void main(String[] args) {
33        //Se crea una instancia de la clase TOLMachine.
34        TOLMachine tm= new TOLMachine();
35        //En una cadena se almacena el código TOL que se ejecutará; en este caso
36        //el código es para definir una serie aleatoria con valores para todos los días del año 2009.
37        String code= "Serie ser1 = SubSer( Gaussian( 0, 1 ), y2009m1d1, y2009m12d31 );";
38        //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
39        //El resultado es un arreglo de cadenas Object.
40        Object res[]= tm.execute(code);
41        System.out.println();
42        if (res==null) {
43            //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
44            System.out.println("ERROR ACCEDIENDO A TOL->execute");
45        } else {
46            //Se ha logrado acceder al intérprete y ejecutar el código.
47            int ne= 0;
48            try {
49                //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
50                ne= Integer.parseInt((String)res[0]);
51                if (ne>0) {
52                    //El intérprete de TOL reportó al menos un error.
53                    System.out.println("Se ha(n) detectado "+ne+" error(es)");
54                } else {
55                    //El intérprete de TOL no reportó errores.
56                    System.out.println("No se han detectado errores");
57                }
58                //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
59                //Warnings, Errores o mensajes generados por el código TOL ejecutado.
60                //Para procesar los mensajes generados debe comprender el formato de
61                //estos mensajes. (Consulte la documentación de TOL).
62                for (int i= 1; i<res.length; ++i) {
63                    //Cada objeto es una cadena
64                    String strRes= (String)res[i];
65                    //Se obtiene la longitud de la cadena.
66                    int l= strRes.length();
67                    if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
68                        //En este caso el mensaje es un 'W'arning o un 'E'rror.
69                        System.out.println("\t"+strRes.substring(3, l-5));
70                    } else {
71                        //En este caso es un mensaje común.
72                        System.out.println("\t"+strRes);
73                    }
74                }
75                //Se crea una variable fecha con valor dentro del rango de fechas de la serie
76                TOLDate date= new TOLDate(2009, 3, 11);
77                //Se obtiene un arreglo de a lo sumo 10 valores de la serie a partir de la fecha dada
78                TSItem tsis1[]= tm.getSerieItems("ser1", date, 10);
79                //Se imprime el número real de elementos obtenidos (pudiera ser inferior a 10)
80                System.out.println("Número de elementos leídos: "+tsis1.length);
81                //Se crea una variable calendario usado para posteriormente imprimir las fechas de la serie
82                Calendar cal= Calendar.getInstance();
83                //Se recorre el arreglo obtenido
84                for (int i= 0; i<tsis1.length; ++i) {
85                    //Se obtiene la fecha de cada item
86                    TOLDate tsid= tsis1[i].getDate();
87                    //Se establece en el calendario la fecha obtenida para su impresión
88                    cal.set(tsid.getYear(), tsid.getMonth(), tsid.getDay(), tsid.getHour(), tsid.getMinute(), (int)tsid.getSecond());
89                    //Se imprime la fecha y el valor de cada item de la serie
90                    System.out.println("["+new Date(cal.getTimeInMillis()).toString()+"]==>["+tsis1[i].getValue()+"]");
91                }
92            } catch (NumberFormatException ex) {
93                //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
94                System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
95            } catch (TOLMachineException ex) {
96                //Algún error ha ocurrido en el acceso a la variable f.
97                System.out.println("ERROR accediendo a la serie ser1: "+ex.getMessage());
98            } catch (TOLDateException ex) {
99                //Algún error ha ocurrido en el manejo de la variable de fecha (date).
100                System.out.println("ERROR accediendo a la serie ser1: "+ex.getMessage());
101            }
102        }
103    }
104}
Note: See TracBrowser for help on using the repository browser.