Revision 47851

View differences:

tags/org.gvsig.desktop-2.0.451/license.txt
1
gvSIG. Desktop Geographic Information System.
2

  
3
Copyright (C) 2007-2023 gvSIG Association.
4

  
5
This program is free software; you can redistribute it and/or
6
modify it under the terms of the GNU General Public License
7
as published by the Free Software Foundation; either version 3
8
of the License, or (at your option) any later version.
9

  
10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
GNU General Public License for more details.
14

  
15
 You should have received a copy of the GNU General Public License 
16
along with this program. If not, see <https://www.gnu.org/licenses/>. 
17

  
18
For any additional information, do not hesitate to contact us
19
at info AT gvsig.com, or visit our website www.gvsig.com.
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.main/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
    <modelVersion>4.0.0</modelVersion>
3
    <groupId>org.gvsig</groupId>
4
    <artifactId>org.gvsig.expressionevaluator.main</artifactId>
5
    <name>${project.artifactId}</name>
6
    <parent>
7
        <groupId>org.gvsig</groupId>
8
        <artifactId>org.gvsig.expressionevaluator</artifactId>
9
        <version>2.0.327-SNAPSHOT</version>
10
    </parent>
11

  
12

  
13
    <dependencies>
14
        <dependency>
15
            <groupId>org.gvsig</groupId>
16
            <artifactId>org.gvsig.expressionevaluator.lib.api</artifactId>
17
            <scope>compile</scope>
18
        </dependency>
19
        <dependency>
20
            <groupId>org.gvsig</groupId>
21
            <artifactId>org.gvsig.expressionevaluator.lib.impl</artifactId>
22
            <scope>runtime</scope>
23
        </dependency>
24
        <dependency>
25
            <groupId>org.gvsig</groupId>
26
            <artifactId>org.gvsig.tools.lib</artifactId>
27
            <scope>compile</scope>
28
        </dependency>
29
        <dependency>
30
            <groupId>org.gvsig</groupId>
31
            <artifactId>org.gvsig.tools.swing.api</artifactId>
32
            <scope>compile</scope>
33
        </dependency>
34
        <dependency>
35
            <groupId>org.gvsig</groupId>
36
            <artifactId>org.gvsig.tools.swing.impl</artifactId>
37
            <scope>runtime</scope>
38
        </dependency>
39
        <dependency>
40
            <groupId>org.gvsig</groupId>
41
            <artifactId>org.gvsig.expressionevaluator.swing.api</artifactId>
42
            <scope>compile</scope>
43
        </dependency>
44
        <dependency>
45
            <groupId>org.gvsig</groupId>
46
            <artifactId>org.gvsig.expressionevaluator.swing.impl</artifactId>
47
            <scope>compile</scope>
48
        </dependency>
49
        <dependency>
50
            <groupId>org.gvsig</groupId>
51
            <artifactId>org.gvsig.fmap.dal.api</artifactId>
52
            <scope>compile</scope>
53
        </dependency>
54
        <dependency>
55
            <groupId>org.gvsig</groupId>
56
            <artifactId>org.gvsig.fmap.dal.swing.api</artifactId>
57
            <scope>compile</scope>
58
        </dependency>
59
        
60
        
61
        <dependency>
62
            <groupId>org.gvsig</groupId>
63
            <artifactId>org.gvsig.fmap.dal.impl</artifactId>
64
            <scope>runtime</scope>
65
        </dependency>
66
        <dependency>
67
            <groupId>org.gvsig</groupId>
68
            <artifactId>org.gvsig.fmap.dal.swing.impl</artifactId>
69
            <scope>runtime</scope>
70
        </dependency>
71
        <dependency>
72
            <groupId>org.gvsig</groupId>
73
            <artifactId>org.gvsig.fmap.dal.file.csv</artifactId>
74
            <scope>runtime</scope>
75
        </dependency>
76
        <dependency>
77
            <groupId>org.gvsig</groupId>
78
            <artifactId>${org.gvsig.metadata.lib.basic.impl}</artifactId>
79
            <scope>runtime</scope>
80
        </dependency>
81
        <dependency>
82
            <groupId>org.gvsig</groupId>
83
            <artifactId>${org.gvsig.fmap.geometry.impl}</artifactId>
84
            <scope>runtime</scope>
85
        </dependency>
86
        <dependency>
87
            <groupId>org.gvsig</groupId>
88
            <artifactId>${org.gvsig.timesupport.lib.impl}</artifactId>
89
            <scope>runtime</scope>
90
        </dependency>
91
        <dependency>
92
            <groupId>org.gvsig</groupId>
93
            <artifactId>${org.gvsig.compat.impl}</artifactId>
94
            <scope>runtime</scope>
95
        </dependency>
96
        <dependency>
97
            <groupId>org.gvsig</groupId>
98
            <artifactId>${org.gvsig.proj.lib.impl}</artifactId>
99
            <scope>runtime</scope>
100
        </dependency>
101
        <dependency>
102
            <groupId>org.gvsig</groupId>
103
            <artifactId>org.gvsig.utils</artifactId>
104
            <scope>runtime</scope>
105
        </dependency>
106
        <!--
107
        <dependency>
108
            <groupId>org.gvsig</groupId>
109
            <artifactId>org.gvsig.scripting.swing.impl</artifactId>
110
            <version>2.3.67-SNAPSHOT</version>
111
            <scope>runtime</scope>
112
        </dependency>
113
        -->
114
    </dependencies>
115

  
116

  
117
    <build>
118
        <plugins>
119
            <plugin> 
120
                <!-- Build an executable JAR --> 
121
                <groupId>org.apache.maven.plugins</groupId> 
122
                <artifactId>maven-jar-plugin</artifactId> 
123
                <version>3.0.2</version> 
124
                <configuration> 
125
                    <archive> 
126
                        <manifest> 
127
                            <addClasspath>true</addClasspath> 
128
                            <classpathPrefix>./</classpathPrefix> 
129
                            <mainClass>org.gvsig.expressionevaluator.main.Main</mainClass> 
130
                        </manifest> 
131
                    </archive> 
132
                </configuration> 
133
            </plugin> 
134
            
135
            <plugin>
136
                <artifactId>maven-assembly-plugin</artifactId>
137
                <configuration>
138
                    <ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
139
                    <appendAssemblyId>false</appendAssemblyId>
140
                </configuration>
141
                <executions>
142
                    <execution>
143
                        <id>gvsig-plugin-package</id>
144
                        <phase>package</phase>
145
                        <goals>
146
                            <goal>single</goal>
147
                        </goals>
148
                        <configuration>
149
                            <finalName>${project.artifactId}-${project.version}</finalName>
150
                            <descriptors>
151
                                <descriptor>src/main/assembly/gvsig-main-package.xml</descriptor>
152
                            </descriptors>
153
                        </configuration>
154
                    </execution>
155
                </executions>
156
            </plugin>
157

  
158
        </plugins>
159
    </build>
160

  
161

  
162

  
163
</project>
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.main/src/main/java/org/gvsig/expressionevaluator/main/MainDialog.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.expressionevaluator.main;
7

  
8
import java.io.File;
9
import java.net.URL;
10
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
11
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
12
import org.gvsig.expressionevaluator.SymbolTable;
13
import org.gvsig.expressionevaluator.swing.Element;
14
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
15
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
16
import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
17
import org.gvsig.fmap.dal.DALLocator;
18
import org.gvsig.fmap.dal.DataManager;
19
import org.gvsig.fmap.dal.DataStore;
20
import org.gvsig.fmap.dal.feature.FeatureStore;
21
import org.gvsig.fmap.dal.swing.DataSwingManager;
22
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
23
import org.gvsig.tools.swing.api.ToolsSwingLocator;
24
import org.gvsig.tools.swing.api.windowmanager.Dialog;
25
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
26
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
27

  
28
/**
29
 *
30
 * @author jjdelcerro
31
 */
32
public class MainDialog {
33
    public static void main(String[] args) {
34
        new MainDialog().run(args);
35
    }
36
    
37
    public void run(String[] args) {
38
        new DefaultLibrariesInitializer().fullInitialize();
39
        
40
        WindowManager_v2 windowManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
41
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
42
        ExpressionEvaluatorSwingManager swingManager = ExpressionEvaluatorSwingLocator.getManager();
43
        
44
        JExpressionBuilder panel = swingManager.createJExpressionBuilder();
45
//        panel.addSymbolTable(DataManager.DAL_SYMBOL_TABLE_FEATURE);
46
        Element element = swingManager.createElement(
47
                DataSwingManager.FEATURE_STORE_EXPRESSION_ELEMENT, 
48
                panel, 
49
                openStore()
50
        );
51
        if( element != null ) {
52
            panel.addElement(element);
53
        }
54
        Dialog dialog = windowManager.createDialog(
55
                panel.asJComponent(),
56
                "Test eexpression builder",
57
                null, 
58
                WindowManager_v2.BUTTONS_OK_CANCEL
59
        );
60
        dialog.show(WindowManager.MODE.WINDOW);
61
    }
62
   
63
    private FeatureStore openStore() {
64
        try {
65
            DataManager dataManager = DALLocator.getDataManager();
66
            URL url = this.getClass().getResource("/Locations.csv");
67
            DataStore store = dataManager.openStore(
68
                    "CSV", 
69
                    "file",new File(url.toURI()),
70
                    "firstLineHeader", true,
71
                    "delimiter",","
72
            );
73
            return (FeatureStore) store;
74
        } catch (Exception ex) {
75
            throw new RuntimeException(ex);
76
        }
77
    }
78
}
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.main/src/main/java/org/gvsig/expressionevaluator/main/MainPicker.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.expressionevaluator.main;
7

  
8
import java.awt.Dimension;
9
import java.io.File;
10
import java.net.URL;
11
import javax.swing.JFrame;
12
import javax.swing.WindowConstants;
13
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
14
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
15
import org.gvsig.expressionevaluator.SymbolTable;
16
import org.gvsig.expressionevaluator.swing.Element;
17
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
18
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
19
import org.gvsig.expressionevaluator.swing.JExpressionPicker;
20
import org.gvsig.fmap.dal.DALLocator;
21
import org.gvsig.fmap.dal.DataManager;
22
import org.gvsig.fmap.dal.DataStore;
23
import org.gvsig.fmap.dal.feature.FeatureStore;
24
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
25

  
26
/**
27
 *
28
 * @author jjdelcerro
29
 */
30
public class MainPicker {
31
    public static void main(String[] args) {
32
        new MainPicker().run(args);
33
    }
34
    
35
    public void run(String[] args) {
36
        new DefaultLibrariesInitializer().fullInitialize();
37
        
38
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
39
        ExpressionEvaluatorSwingManager swingManager = ExpressionEvaluatorSwingLocator.getManager();
40
        
41
        JExpressionPicker panel = swingManager.createJExpressionPicker();
42
//        SymbolTable symbolTable = manager.getSymbolTable("DAL.FeatureSymbolTable");
43
//        if( symbolTable!=null ) {
44
//            panel.addSymbolTable(symbolTable);
45
//        }
46
        Element element = swingManager.createElement("DAL.FeatureStoreElement", panel, openStore());
47
        if( element != null ) {
48
            panel.getElements().add(element);
49
        }
50

  
51
        JFrame frame = new JFrame("My JFrame Example");
52
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
53
        frame.setPreferredSize(new Dimension(400, 60));
54
        frame.add(panel.asJComponent());
55
        frame.pack();
56
        frame.setVisible(true);        
57
    }
58
   
59
    private FeatureStore openStore() {
60
        try {
61
            DataManager dataManager = DALLocator.getDataManager();
62
            URL url = this.getClass().getResource("/Locations.csv");
63
            DataStore store = dataManager.openStore(
64
                    "CSV", 
65
                    "file",new File(url.toURI()),
66
                    "firstLineHeader", true,
67
                    "delimiter",","
68
            );
69
            return (FeatureStore) store;
70
        } catch (Exception ex) {
71
            throw new RuntimeException(ex);
72
        }
73
    }
74
}
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.main/src/main/resources/Locations.csv
1
"id","name","size","confirmed","type"
2
1,"King's Landing",5,1,"City"
3
2,"Hayford Castle",3,0,"Castle"
4
3,"Rosby",3,1,"Castle"
5
4,"Old Stone Bridge Inn",1,0,"Other"
6
5,"Brindlewood",1,0,"Other"
7
6,"Sow's Horn",3,1,"Castle"
8
7,"Tumbleton",4,1,"Town"
9
8,"High Heart",2,1,"Ruin"
10
9,"Duskendale",4,1,"Town"
11
10,"Antlers",3,1,"Castle"
12
11,"Stokeworth",3,0,"Castle"
13
12,"Ivy Inn",1,0,"Other"
14
13,"Village",1,0,"Other"
15
14,"Holdfast",1,0,"Other"
16
15,"Harrenhal",3,1,"Castle"
17
16,"Rushing Falls",1,0,"Other"
18
17,"Tumblers Falls",1,0,"Other"
19
18,"Stoney Sept",4,1,"Town"
20
19,"Hollow Hill",1,0,"Other"
21
20,"Sept",1,0,"Other"
22
21,"Acorn Hall",3,1,"Castle"
23
22,"Pinkmaiden",3,1,"Castle"
24
23,"Mummer's Ford",1,0,"Other"
25
24,"Sherrer",1,0,"Other"
26
25,"Wendish Town",1,0,"Other"
27
26,"Lord Goodbrook's Village",1,0,"Other"
28
27,"Sallydance",1,0,"Other"
29
28,"Lady of the Leaves",1,0,"Other"
30
29,"Lord Lychester's Keep",1,0,"Other"
31
30,"Unnamed Village",1,0,"Other"
32
31,"Inn (They Ley with Lions)",1,0,"Other"
33
32,"Riverrun",3,1,"Castle"
34
33,"Raventree Hall",3,0,"Castle"
35
34,"Darry",3,0,"Castle"
36
35,"Inn of the Kneeling Man",1,1,"Other"
37
36,"BWB hideout",1,0,"Other"
38
37,"Lort Harroway's Town",1,0,"Other"
39
38,"Crossroads Inn",1,0,"Other"
40
39,"Saltpans",1,1,"Other"
41
40,"Quiet Isle",1,1,"Other"
42
41,"Wickenden",3,1,"Castle"
43
42,"Maidenpool",4,1,"Town"
44
43,"Rook's Rest",3,1,"Castle"
45
44,"Dyre Den",3,1,"Castle"
46
45,"The Whispers",2,1,"Ruin"
47
46,"Dragonstone",3,1,"Castle"
48
47,"Sharp Point",3,1,"Castle"
49
48,"Stonedance",3,1,"Castle"
50
49,"Haystack Hall",3,1,"Castle"
51
50,"Bronzegate",3,1,"Castle"
52
51,"Felwood",3,1,"Castle"
53
52,"Storm's End",3,1,"Castle"
54
53,"Griffin's Roost",3,1,"Castle"
55
54,"Rain House",3,1,"Castle"
56
55,"Greenstone",3,1,"Castle"
57
56,"Weeping Tower",3,1,"Castle"
58
57,"Mistwood",3,1,"Castle"
59
58,"Stonehelm",3,1,"Castle"
60
59,"Crow's Nest",3,1,"Castle"
61
60,"Grandview",4,0,"Town"
62
61,"Summerhall",2,1,"Ruin"
63
62,"Blackhaven",3,1,"Castle"
64
63,"Fawnton",4,0,"Town"
65
64,"Grassy Vale",3,1,"Castle"
66
65,"Wyl",3,1,"Castle"
67
66,"Ghaston Grey",3,1,"Castle"
68
67,"Yronwood",3,1,"Castle"
69
68,"Vulture's Roost",3,1,"Castle"
70
69,"Nightsong",3,1,"Castle"
71
70,"Ashford",3,1,"Castle"
72
71,"Cider Hall",3,1,"Castle"
73
72,"Highgarden",3,1,"Castle"
74
73,"Horn Hill",3,1,"Castle"
75
74,"Brightwater Keep",3,1,"Castle"
76
75,"Bandallon",3,1,"Castle"
77
76,"Honeyholt",3,1,"Castle"
78
77,"Oldtown",5,1,"City"
79
78,"Blackcrown",3,1,"Castle"
80
79,"Three Towers",3,1,"Castle"
81
80,"Uplands",3,1,"Castle"
82
81,"Sunflower Hall",3,1,"Castle"
83
82,"Blackmont",3,1,"Castle"
84
83,"High Hermitage",3,1,"Castle"
85
84,"Starfall",3,1,"Castle"
86
85,"Sandstone",3,1,"Castle"
87
86,"Skyreach",3,1,"Castle"
88
87,"Kingsgrave",3,1,"Castle"
89
88,"Tower of Joy",1,1,"Other"
90
89,"Hellholt",3,1,"Castle"
91
90,"Vaith",3,1,"Castle"
92
91,"Salt Shore",3,1,"Castle"
93
92,"Godsgrace",3,1,"Castle"
94
93,"The Tor",3,1,"Castle"
95
94,"Ghost Hill",3,1,"Castle"
96
95,"Lemonwood",3,1,"Castle"
97
96,"Sunspear",3,1,"Castle"
98
97,"Planky Town",4,1,"Town"
99
98,"Water Gardens",1,0,"Other"
100
99,"Shandystone",1,0,"Other"
101
100,"Tall Trees Town",4,0,"Town"
102
101,"Longtable",3,1,"Castle"
103
102,"Bitterbridge",3,1,"Castle"
104
103,"Goldengrove",3,1,"Castle"
105
104,"Red Lake",3,1,"Castle"
106
105,"Old Oak",3,1,"Castle"
107
106,"Crakehall",3,1,"Castle"
108
107,"Cornfield",3,1,"Castle"
109
108,"Silverhill",3,1,"Castle"
110
109,"Clegane Hall",3,0,"Castle"
111
110,"Tarbeck Hall",2,0,"Ruin"
112
111,"Lannisport",5,1,"City"
113
112,"Feastfires",3,1,"Castle"
114
113,"Kayce",4,1,"Town"
115
114,"Oxcross",1,0,"Other"
116
115,"Sarsfield",3,1,"Castle"
117
116,"Deep Den",3,1,"Castle"
118
117,"Hornvale",3,1,"Castle"
119
118,"Golden Tooth",1,1,"Other"
120
119,"Wayfarer's Rest",3,0,"Castle"
121
120,"Castamere",2,0,"Ruin"
122
121,"Pendric Hills",1,0,"Other"
123
122,"The Crag",3,1,"Castle"
124
123,"Banefort",3,1,"Castle"
125
124,"Ashemark",3,1,"Castle"
126
125,"Nunn's Deep",1,0,"Other"
127
126,"Stone Mill",1,0,"Other"
128
127,"Stone Hedge",3,1,"Castle"
129
128,"Fairmarket",4,1,"Town"
130
129,"Oldstones",2,1,"Ruin"
131
130,"Palisade Village",1,0,"Other"
132
131,"The Bloody Gate",3,1,"Castle"
133
132,"The Eyrie",3,1,"Castle"
134
133,"Strongsong",3,1,"Castle"
135
134,"Heart's Home",3,1,"Castle"
136
135,"Redfort",3,1,"Castle"
137
136,"Ironoaks",3,1,"Castle"
138
137,"Old Anchor",3,1,"Castle"
139
138,"Runestone",3,1,"Castle"
140
139,"Gulltown",5,1,"City"
141
140,"Longbow Hall",3,1,"Castle"
142
141,"Snakewood",3,1,"Castle"
143
142,"Baelish Keep",1,0,"Other"
144
143,"Coldwater",3,1,"Castle"
145
144,"Seagard",3,1,"Castle"
146
145,"The Twins",3,1,"Castle"
147
146,,3,1,"Castle"
148
147,"Greywater Watch",3,1,"Castle"
149
148,"Moat Cailin",2,1,"Ruin"
150
149,"Sisterton",4,1,"Town"
151
150,"Oldcastle",3,1,"Castle"
152
151,"White Harbor",5,1,"City"
153
152,"Ramsgate",3,1,"Castle"
154
153,"Widow's Watch",3,1,"Castle"
155
154,"Hornwood",3,0,"Castle"
156
155,"Tower",1,0,"Other"
157
156,"The Dreadfort",3,1,"Castle"
158
157,"Cerwyn",3,0,"Castle"
159
158,"Holdfast",1,0,"Other"
160
159,"Winterfell",3,1,"Castle"
161
160,"Crofters' Village",1,0,"Other"
162
161,"Tumbledown Tower",1,0,"Other"
163
162,"Deepwood Motte",3,1,"Castle"
164
163,"Last Hearth",3,1,"Castle"
165
164,"Karhold",3,1,"Castle"
166
165,"Queenscrown",1,1,"Other"
167
166,"Castle Black",3,1,"Castle"
168
167,"Mole's Town",1,0,"Other"
169
168,"Shadow Tower",3,1,"Castle"
170
169,"Westwatch-by-the-Bridge",1,1,"Other"
171
170,"Sentinel Stand",1,1,"Other"
172
171,"Greyguard",1,1,"Other"
173
172,"Stonedoor",1,1,"Other"
174
173,"Hoarfrost Hill",1,1,"Other"
175
174,"Icemark",1,1,"Other"
176
175,"Nightfort",1,1,"Other"
177
176,"Deep Lake",1,1,"Other"
178
177,"Queensgate",1,1,"Other"
179
178,"Oakensheild",1,1,"Other"
180
179,"Woodswatch-by-the-Pool",1,1,"Other"
181
180,"Sable Hall",1,1,"Other"
182
181,"Rimegate",1,1,"Other"
183
182,"Long Barrow",1,1,"Other"
184
183,"Torches",1,1,"Other"
185
184,"Greenguard",1,1,"Other"
186
185,"Eastwatch-by-the-Sea",3,1,"Castle"
187
186,"Whitetree",1,1,"Other"
188
187,"Craster's Keep",1,1,"Other"
189
188,"Fist of the First Men",1,1,"Other"
190
189,"Fishing Village",1,0,"Other"
191
190,"Pennytree",1,0,"Other"
192
191,"Lys",5,1,"City"
193
192,"Tyrosh",5,1,"City"
194
193,"Myr",5,1,"City"
195
194,"Pentos",5,1,"City"
196
195,"Ghoyan Drohe",2,1,"Ruin"
197
196,"Norvos",5,1,"City"
198
197,"Evenfall Hall",3,1,"Castle"
199
198,"Parchments",1,0,"Other"
200
199,"Braavos",3,1,"Castle"
201
200,"Lorath",3,1,"Castle"
202
201,"Qohor",5,1,"City"
203
202,"Ar Noy",2,1,"Ruin"
204
203,"Ny Sar",2,1,"Ruin"
205
204,"The Sorrows (Chroyane)",2,1,"Ruin"
206
205,"Selhorys",4,1,"Town"
207
206,"Valysar",4,1,"Town"
208
207,"Volon Therys",4,1,"Town"
209
208,"Sar Mell",2,1,"Ruin"
210
209,"Volantis",5,1,"City"
211
210,,1,1,"Other"
212
211,,2,1,"Ruin"
213
212,"Mantarys",5,1,"City"
214
213,,2,1,"Ruin"
215
214,"Oros",2,1,"Ruin"
216
215,"Elyria",5,1,"City"
217
216,"Tolos",5,1,"City"
218
217,"Ghozai",2,1,"Ruin"
219
218,"Velos",2,1,"Ruin"
220
219,,2,1,"Ruin"
221
220,"Astapor",5,1,"City"
222
221,"Yunkai",5,1,"City"
223
222,"Meereen",5,1,"City"
224
223,"Lhazarene Village",1,0,"Other"
225
224,"Vaes Dothrak",5,0,"City"
226
225,"Old Ghis",2,1,"Ruin"
227
226,"New Ghis",5,1,"City"
228
227,"Zamettar",2,1,"Ruin"
229
228,"Yeen",2,1,"Ruin"
230
229,"Gogossos",2,1,"Ruin"
231
230,"Flint's Finger",3,1,"Castle"
232
231,"Barrowton",4,1,"Town"
233
232,"Torrhen's Square",3,1,"Castle"
234
233,"Bhorash",2,1,"Ruin"
235
234,"Pyke",3,1,"Castle"
236
235,"Pebbleton",1,0,"Other"
237
236,"Hammerhorn",1,0,"Other"
238
237,"Nagga's Ribs",1,0,"Other"
239
238,"Castle Goodbrother",1,0,"Other"
240
239,"Ten Towers",3,1,"Castle"
241
240,"Faircastle",3,1,"Castle"
242
241,"Tyria",2,1,"Ruin"
243
242,"Valyria",2,1,"Ruin"
244
243,,2,1,"Ruin"
245
244,,2,1,"Ruin"
246
245,,2,1,"Ruin"
247
246,"Qarth",5,0,"City"
248
247,"Lord Hewett's Town",1,0,"Other"
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.main/src/main/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!--
3

  
4
    gvSIG. Desktop Geographic Information System.
5

  
6
    Copyright (C) 2007-2012 gvSIG Association.
7

  
8
    This program is free software; you can redistribute it and/or
9
    modify it under the terms of the GNU General Public License
10
    as published by the Free Software Foundation; either version 2
11
    of the License, or (at your option) any later version.
12

  
13
    This program is distributed in the hope that it will be useful,
14
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
    GNU General Public License for more details.
17

  
18
    You should have received a copy of the GNU General Public License
19
    along with this program; if not, write to the Free Software
20
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
    MA  02110-1301, USA.
22

  
23
    For any additional information, do not hesitate to contact us
24
    at info AT gvsig.com, or visit our website www.gvsig.com.
25

  
26
-->
27
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
28

  
29
<!-- 
30
Log4J configuration file for unit tests execution.
31
 -->
32
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
33

  
34
	<!-- Appender configuration to show logging messages through the console -->
35
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
36
		<layout class="org.apache.log4j.PatternLayout">
37
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
38
		</layout>
39
	</appender>
40

  
41
	<!-- 
42
	Activate logging messages of DEBUG level of higher only for the
43
	org.gvsig.tools packages.
44
	You can put full classes names or packages instead, to configure
45
	logging for all the classes and subpackages of the package.
46
	-->
47
	<category name="org.gvsig.tools">
48
		<priority value="DEBUG" />
49
	</category>
50
	<category name="org.gvsig.construc">
51
		<priority value="DEBUG" />
52
	</category>
53

  
54
	<!-- 
55
	By default, show only logging messages of INFO level or higher, 
56
	through the previously configured CONSOLE appender. 
57
	-->
58
	<root>
59
		<priority value="INFO" />
60
		<appender-ref ref="CONSOLE" />
61
	</root>
62
</log4j:configuration>
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.main/src/main/assembly/gvsig-main-package.xml
1
<!--
2

  
3
    gvSIG. Desktop Geographic Information System.
4

  
5
    Copyright (C) 2007-2013 gvSIG Association.
6

  
7
    This program is free software; you can redistribute it and/or
8
    modify it under the terms of the GNU General Public License
9
    as published by the Free Software Foundation; either version 3
10
    of the License, or (at your option) any later version.
11

  
12
    This program is distributed in the hope that it will be useful,
13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
    GNU General Public License for more details.
16

  
17
    You should have received a copy of the GNU General Public License
18
    along with this program; if not, write to the Free Software
19
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
    MA  02110-1301, USA.
21

  
22
    For any additional information, do not hesitate to contact us
23
    at info AT gvsig.com, or visit our website www.gvsig.com.
24

  
25
-->
26
<assembly>
27
  <id>gvsig-main-package</id>
28
  <formats>
29
    <format>dir</format>
30
  </formats>
31
  <baseDirectory>.</baseDirectory>
32
  <!-- 
33
  <includeBaseDirectory>true</includeBaseDirectory>
34
   -->
35
  <files>
36
    <file>
37
      <source>target/${project.artifactId}-${project.version}.jar</source>
38
      <outputDirectory>lib</outputDirectory>
39
    </file>
40
  </files>
41
  <fileSets>
42
    <fileSet>
43
      <directory>src/main/resources-main</directory>
44
      <outputDirectory>.</outputDirectory>
45
    </fileSet>
46
  </fileSets>
47
  
48
  <dependencySets>
49
    <dependencySet>
50
      <useProjectArtifact>false</useProjectArtifact>
51
      <useTransitiveDependencies>true</useTransitiveDependencies>
52
      <outputDirectory>lib</outputDirectory>
53
    </dependencySet>
54
  </dependencySets>
55

  
56
</assembly>
57

  
0 58

  
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <artifactId>org.gvsig.expressionevaluator</artifactId>
4
  <packaging>pom</packaging>
5
  <description>Evaluador de expresiones. Usa una sintaxis similar a las condiciones de SQL.</description>
6
  <parent>
7
    <groupId>org.gvsig</groupId>
8
    <artifactId>org.gvsig.desktop.library</artifactId>
9
    <version>2.0.451</version>
10
  </parent>
11
  
12
  <modules>
13
    <module>org.gvsig.expressionevaluator.lib</module>
14
    <module>org.gvsig.expressionevaluator.swing</module>
15
    <module>org.gvsig.expressionevaluator.geometry</module>
16
    <module>org.gvsig.expressionevaluator.time</module>
17
    <!--
18
    <module>org.gvsig.expressionevaluator.main</module>
19
        -->
20
  </modules>
21
</project>
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.expressionevaluator</artifactId>
6
    <version>2.0.451</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.expressionevaluator.lib</artifactId>
10
  <packaging>pom</packaging>
11
  <modules>
12
    <module>org.gvsig.expressionevaluator.lib.api</module>
13
    <module>org.gvsig.expressionevaluator.lib.impl</module>
14
  </modules>
15
</project>
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!--
3

  
4
    gvSIG. Desktop Geographic Information System.
5

  
6
    Copyright (C) 2007-2012 gvSIG Association.
7

  
8
    This program is free software; you can redistribute it and/or
9
    modify it under the terms of the GNU General Public License
10
    as published by the Free Software Foundation; either version 2
11
    of the License, or (at your option) any later version.
12

  
13
    This program is distributed in the hope that it will be useful,
14
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
    GNU General Public License for more details.
17

  
18
    You should have received a copy of the GNU General Public License
19
    along with this program; if not, write to the Free Software
20
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
    MA  02110-1301, USA.
22

  
23
    For any additional information, do not hesitate to contact us
24
    at info AT gvsig.com, or visit our website www.gvsig.com.
25

  
26
-->
27
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
28

  
29
<!-- 
30
Log4J configuration file for unit tests execution.
31
 -->
32
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
33

  
34
	<!-- Appender configuration to show logging messages through the console -->
35
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
36
		<layout class="org.apache.log4j.PatternLayout">
37
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
38
		</layout>
39
	</appender>
40

  
41
	<!-- 
42
	Activate logging messages of DEBUG level of higher only for the
43
	org.gvsig.tools packages.
44
	You can put full classes names or packages instead, to configure
45
	logging for all the classes and subpackages of the package.
46
	-->
47
	<category name="org.gvsig.tools">
48
		<priority value="DEBUG" />
49
	</category>
50
	<category name="org.gvsig.construc">
51
		<priority value="DEBUG" />
52
	</category>
53

  
54
	<!-- 
55
	By default, show only logging messages of INFO level or higher, 
56
	through the previously configured CONSOLE appender. 
57
	-->
58
	<root>
59
		<priority value="INFO" />
60
		<appender-ref ref="CONSOLE" />
61
	</root>
62
</log4j:configuration>
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/resources/org/gvsig/expressionevaluator/impl/TestScript1_2.cosa
1
-- encoding: utf-8; lang: cosa
2

  
3
CREATE FUNCTION test1 AS
4
DECLARE
5
    x := ''; 
6
BEGIN
7
    FOR n IN LIST('hola','adios','fin')
8
    LOOP
9
        x := x || ' ' || n; 
10
    END 
11
    RETURN x;
12
END
13

  
14
CREATE FUNCTION test2 AS
15
$$
16
DECLARE 
17
    s := ''; 
18
    x := LIST('hola','adios','fin'); 
19
BEGIN
20
    FOR n IN RANGE(3)
21
    LOOP
22
        s := s || ' ' || x[n]; 
23
    END LOOP;
24
    RETURN s;
25
END
26
$$
27

  
28
CREATE FUNCTION saluda AS
29
BEGIN
30
    IF LEN($ARGS) > 0 THEN
31
        SET s TO 'Hola ' || $ARGS[0];
32
    ELSE
33
        SET s = 'Hola.';
34
    END;
35
    PRINT(s);
36
    RETURN s;
37
END
38

  
39
CREATE FUNCTION test3 AS
40
BEGIN 
41
    RETURN saluda('amigos');
42
END
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/resources/org/gvsig/expressionevaluator/impl/testlib.cosa
1
-- encoding: utf-8; lang: cosa
2

  
3
CREATE FUNCTION SQUARE(num) AS
4
BEGIN
5
    RETURN num*num;
6
END
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/resources/org/gvsig/expressionevaluator/impl/TestScript1_1.test
1
-- encoding: utf-8; lang: cosa
2

  
3
create function square(num) as
4
begin
5
    return num*num;
6
end
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/resources/org/gvsig/expressionevaluator/impl/TestScript1_1.cosa
1
-- encoding: utf-8; lang: cosa
2

  
3
create procedure form_onSetvalues form, values as
4
begin
5
  -- print('form_onSetvalues');
6
  pass;
7
end 
8

  
9
create procedure form_onFieldEnter form, field as
10
begin
11
  -- print('form_onFieldEnter');
12
  pass;
13
end 
14

  
15
create procedure form_onFieldExit form, field as
16
begin
17
  -- print('form_onFieldExit');
18
  pass;
19
end 
20

  
21
create procedure form_onFieldChanged form, field as
22
begin
23
  -- print('form_onFieldChanged ' || field.getName());
24
  case 
25
    when field.getName() = 'bracketvcs' then
26
        begin 
27
            rotationField := form.getField('rotationangleimage');
28
            bracket := field.getRelatedFeature();
29
            -- print(' bracket: ' ||  tostr(bracket.extinca) );
30
            -- print(' bracket rotation: ' ||  tostr(bracket.rotationangleimage) );
31
            -- print(' vertical-signal rotation: ' || tostr(rotationField.getValue()) );
32
            if rotationField.getValue() is null then
33
                rotationField.setValue(bracket.rotationangleimage);
34
            end
35
        end
36
  end
37
end 
38

  
39
create function form_validate form as
40
begin
41
  -- print('form_validate');
42
  return true;
43
end 
44

  
45
create procedure form_onLoad form as
46
begin
47
  -- print('form_onLoad');
48
  return;
49
end 
50

  
51
create procedure form_clear form as
52
begin
53
  -- print('form_clear');
54
  pass;
55
end 
56

  
57
create function form_isReadOnly form as
58
begin
59
    if not user().isAuthenticated() then
60
      return true;
61
    end if
62
    return false;
63
    -- fecha_accidente := form.getField('FECHA_ACCIDENTE').getValue();
64
    -- if fecha_accidente is null then
65
    --   return false;
66
    -- end if
67
    -- fecha_de_cierre := application().getProperty('CEGESEV.accidentes.fecha_de_cierre');
68
    -- if fecha_de_cierre is null then
69
    --   return true;
70
    -- end if
71
    -- return cast(fecha_de_cierre as date) > (fecha_accidente as date);
72
end 
tags/org.gvsig.desktop-2.0.451/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestInterpreter.java
1
package org.gvsig.expresionevaluator.impl;
2

  
3
import java.util.Map;
4
import junit.framework.TestCase;
5
import org.apache.commons.lang3.StringUtils;
6
import org.apache.commons.lang3.tuple.ImmutablePair;
7
import org.apache.commons.lang3.tuple.Pair;
8
import org.gvsig.expressionevaluator.AttributeHandler;
9
import org.gvsig.expressionevaluator.LexicalAnalyzer;
10
import org.gvsig.expressionevaluator.Compiler;
11
import org.gvsig.expressionevaluator.SymbolTable;
12
import org.gvsig.expressionevaluator.Interpreter;
13
import org.gvsig.expressionevaluator.Code;
14
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
15
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
16
import org.gvsig.expressionevaluator.MutableSymbolTable;
17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18
import org.gvsig.tools.util.IsEmpty;
19
import org.gvsig.tools.util.ListBuilder;
20

  
21
public class TestInterpreter extends TestCase {
22
    
23
    public TestInterpreter(String testName) {
24
        super(testName);
25
    }
26
    
27
    @Override
28
    protected void setUp() throws Exception {
29
        super.setUp();
30
        new DefaultLibrariesInitializer().fullInitialize();
31
    }
32
    
33
    @Override
34
    protected void tearDown() throws Exception {
35
        super.tearDown();
36
    }
37

  
38
    // TODO add test methods here. The name must begin with 'test'. For example:
39
    // public void testHello() {}
40

  
41
    
42
    protected LexicalAnalyzer createLexicalAnalyzer() {
43
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
44
        LexicalAnalyzer lexer = manager.createLexicalAnalyzer();
45
        return lexer;
46
    }
47

  
48
    protected org.gvsig.expressionevaluator.Compiler createCompiler() {
49
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
50
        Compiler compiler = manager.createCompiler();
51
        compiler.setLexicalAnalyzer(createLexicalAnalyzer());
52
        return compiler;
53
    }
54

  
55
    
56
    protected MutableSymbolTable createSymbolTable() {
57
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
58
        MutableSymbolTable symbolTable = manager.createSymbolTable();
59
        symbolTable.setVar("precio", 200);
60
        symbolTable.setVar("1990", 0.168873933773767);
61
        return symbolTable;
62
    }
63
    
64
    protected Interpreter createInterpreter(SymbolTable symbolTable) {
65
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
66
        Interpreter interpreter = manager.createInterpreter();
67
        interpreter.setSymbolTable(symbolTable);
68
        return interpreter;
69
    }
70
    
71
    public void testIdentifier1() {
72
        SymbolTable symbolTable = createSymbolTable();
73
        Compiler compiler = createCompiler();
74
        Interpreter interpreter = createInterpreter(symbolTable);
75
        
76
        String source = "precio";
77

  
78
        Code code = compiler.compileExpression(source);
79
        Object v = interpreter.run(code);
80
        assertEquals(200, ((Number)v).intValue());
81
    }
82
    
83
    public void testInteger() {
84
        SymbolTable symbolTable = createSymbolTable();
85
        Compiler compiler = createCompiler();
86
        Interpreter interpreter = createInterpreter(symbolTable);
87
        
88
        String source = "23";
89

  
90
        Code code = compiler.compileExpression(source);
91
        Object v = interpreter.run(code);
92
        assertEquals(23, ((Number)v).intValue());
93
    }
94
    
95
    public void testNumberDMS() {
96
        SymbolTable symbolTable = createSymbolTable();
97
        Compiler compiler = createCompiler();
98
        Interpreter interpreter = createInterpreter(symbolTable);
99
        
100
        String source = "@10 30 1.2 N";
101

  
102
        Code code = compiler.compileExpression(source);
103
        Object v = interpreter.run(code);
104
        assertEquals(10.5003, Math.round(((Number)v).doubleValue()*10000d)/10000d);
105

  
106
        source = "@10 30 0.09 N";
107

  
108
        code = compiler.compileExpression(source);
109
        v = interpreter.run(code);
110
        assertEquals(10.500025, Math.round(((Number)v).doubleValue()*1000000d)/1000000d);
111

  
112
        source = "@10 30 0.09 S";
113

  
114
        code = compiler.compileExpression(source);
115
        v = interpreter.run(code);
116
        assertEquals(-10.500025, Math.round(((Number)v).doubleValue()*1000000d)/1000000d);
117

  
118
        source = "@+10 30 0.09";
119

  
120
        code = compiler.compileExpression(source);
121
        v = interpreter.run(code);
122
        assertEquals(10.500025, Math.round(((Number)v).doubleValue()*1000000d)/1000000d);
123

  
124
        source = "@-10 30 0.09";
125

  
126
        code = compiler.compileExpression(source);
127
        v = interpreter.run(code);
128
        assertEquals(-10.500025, Math.round(((Number)v).doubleValue()*1000000d)/1000000d);
129

  
130
    }
131
    
132
    public void testTrue() {
133
        SymbolTable symbolTable = createSymbolTable();
134
        Compiler compiler = createCompiler();
135
        Interpreter interpreter = createInterpreter(symbolTable);
136
        
137
        String source = "true";
138

  
139
        Code code = compiler.compileExpression(source);
140
        assertEquals(Boolean.TRUE, interpreter.run(code));
141
    }
142
    
143
    public void testFalse() {
144
        SymbolTable symbolTable = createSymbolTable();
145
        Compiler compiler = createCompiler();
146
        Interpreter interpreter = createInterpreter(symbolTable);
147
        
148
        String source = "false";
149

  
150
        Code code = compiler.compileExpression(source);
151
        assertEquals(Boolean.FALSE, interpreter.run(code));
152
    }
153
    
154
    public void testNull() {
155
        SymbolTable symbolTable = createSymbolTable();
156
        Compiler compiler = createCompiler();
157
        Interpreter interpreter = createInterpreter(symbolTable);
158
        
159
        String source = "null";
160

  
161
        Code code = compiler.compileExpression(source);
162
        assertEquals(null, interpreter.run(code));
163
    }
164
    
165
    public void testIsNull() {
166
        SymbolTable symbolTable = createSymbolTable();
167
        Compiler compiler = createCompiler();
168
        Interpreter interpreter = createInterpreter(symbolTable);
169
        
170
        String source = "10 is null";
171

  
172
        Code code = compiler.compileExpression(source);
173
        assertEquals(false, interpreter.run(code));
174
    }
175
    
176
    public void testIsNotNull() {
177
        SymbolTable symbolTable = createSymbolTable();
178
        Compiler compiler = createCompiler();
179
        Interpreter interpreter = createInterpreter(symbolTable);
180
        
181
        String source = "10 is not null";
182

  
183
        Code code = compiler.compileExpression(source);
184
        assertEquals(true, interpreter.run(code));
185
    }
186
    
187
    public void testAdd1() {
188
        SymbolTable symbolTable = createSymbolTable();
189
        Compiler compiler = createCompiler();
190
        Interpreter interpreter = createInterpreter(symbolTable);
191
        
192
        String source = "precio + 10";
193

  
194
        Code code = compiler.compileExpression(source);
195
        Object v = interpreter.run(code);
196
        assertEquals(210, ((Number)v).intValue());
197
    }
198
    
199
    public void testSimpleAdd1() {
200
        SymbolTable symbolTable = createSymbolTable();
201
        Compiler compiler = createCompiler();
202
        Interpreter interpreter = createInterpreter(symbolTable);
203
        
204
        String source = "5+10";
205

  
206
        Code code = compiler.compileExpression(source);
207
        Object v = interpreter.run(code);
208
        assertEquals(15, ((Number)v).intValue());
209
    }
210
    
211
    public void testSimpleAdd2() {
212
        SymbolTable symbolTable = createSymbolTable();
213
        Compiler compiler = createCompiler();
214
        Interpreter interpreter = createInterpreter(symbolTable);
215
        
216
        String source = "5 + 10";
217

  
218
        Code code = compiler.compileExpression(source);
219
        Object v = interpreter.run(code);
220
        assertEquals(15, ((Number)v).intValue());
221
    }
222
    
223
    public void testSimpleAdd3() {
224
        SymbolTable symbolTable = createSymbolTable();
225
        Compiler compiler = createCompiler();
226
        Interpreter interpreter = createInterpreter(symbolTable);
227
        
228
        String source = "10+-5";
229

  
230
        Code code = compiler.compileExpression(source);
231
        Object v = interpreter.run(code);
232
        assertEquals(5, ((Number)v).intValue());
233
    }
234
    
235
    public void testSimpleSub1() {
236
        SymbolTable symbolTable = createSymbolTable();
237
        Compiler compiler = createCompiler();
238
        Interpreter interpreter = createInterpreter(symbolTable);
239
        
240
        String source = "10-5";
241

  
242
        Code code = compiler.compileExpression(source);
243
        Object v = interpreter.run(code);
244
        assertEquals(5, ((Number)v).intValue());
245
    }
246
    
247
    public void testSimpleSub2() {
248
        SymbolTable symbolTable = createSymbolTable();
249
        Compiler compiler = createCompiler();
250
        Interpreter interpreter = createInterpreter(symbolTable);
251
        
252
        String source = "10 - 5";
253

  
254
        Code code = compiler.compileExpression(source);
255
        Object v = interpreter.run(code);
256
        assertEquals(5, ((Number)v).intValue());
257
    }
258
    
259
    public void testSimpleNumber() {
260
        SymbolTable symbolTable = createSymbolTable();
261
        Compiler compiler = createCompiler();
262
        Interpreter interpreter = createInterpreter(symbolTable);
263
        
264
        String source = "23";
265

  
266
        Code code = compiler.compileExpression(source);
267
        Object v = interpreter.run(code);
268
        assertEquals(23, ((Number)v).intValue());
269
    }
270
    
271
    public void testSimpleNegativeNumber() {
272
        SymbolTable symbolTable = createSymbolTable();
273
        Compiler compiler = createCompiler();
274
        Interpreter interpreter = createInterpreter(symbolTable);
275
        
276
        String source = "-23";
277

  
278
        Code code = compiler.compileExpression(source);
279
        Object v = interpreter.run(code);
280
        assertEquals(-23, ((Number)v).intValue());
281
    }
282
    
283
    public void testNegateFunction() {
284
        SymbolTable symbolTable = createSymbolTable();
285
        Compiler compiler = createCompiler();
286
        Interpreter interpreter = createInterpreter(symbolTable);
287
        
288
        String source = "-PI()";
289

  
290
        Code code = compiler.compileExpression(source);
291
        Object v = interpreter.run(code);
292
        assertEquals(-Math.PI, ((Number)v).doubleValue());
293
    }
294
    
295
    public void testSub1() {
296
        SymbolTable symbolTable = createSymbolTable();
297
        Compiler compiler = createCompiler();
298
        Interpreter interpreter = createInterpreter(symbolTable);
299
        
300
        String source = "precio - 10";
301

  
302
        Code code = compiler.compileExpression(source);
303
        Object v = interpreter.run(code);
304
        assertEquals(190, ((Number)v).intValue());
305
    }
306
    
307
    public void testMul1() {
308
        SymbolTable symbolTable = createSymbolTable();
309
        Compiler compiler = createCompiler();
310
        Interpreter interpreter = createInterpreter(symbolTable);
311
        
312
        String source = "precio * 10";
313

  
314
        Code code = compiler.compileExpression(source);
315
        Object v = interpreter.run(code);
316
        assertEquals(2000, ((Number)v).intValue());
317
    }
318

  
319
    public void testDiv1() {
320
        SymbolTable symbolTable = createSymbolTable();
321
        Compiler compiler = createCompiler();
322
        Interpreter interpreter = createInterpreter(symbolTable);
323
        
324
        String source = "precio / 10";
325

  
326
        Code code = compiler.compileExpression(source);
327
        Object v = interpreter.run(code);
328
        assertEquals(20, ((Number)v).intValue());
329
    }
330
    
331
    public void testMod1() {
332
        SymbolTable symbolTable = createSymbolTable();
333
        Compiler compiler = createCompiler();
334
        Interpreter interpreter = createInterpreter(symbolTable);
335
        
336
        String source = "4 % 3";
337

  
338
        Code code = compiler.compileExpression(source);
339
        Object v = interpreter.run(code);
340
        assertEquals(1, ((Number)v).intValue());
341
    }
342
    
343
    public void testMod2() {
344
        SymbolTable symbolTable = createSymbolTable();
345
        Compiler compiler = createCompiler();
346
        Interpreter interpreter = createInterpreter(symbolTable);
347
        
348
        String source = "MOD(4, 3)";
349

  
350
        Code code = compiler.compileExpression(source);
351
        Object v = interpreter.run(code);
352
        assertEquals(1, ((Number)v).intValue());
353
    }
354
    
355
    public void testAdd2() {
356
        SymbolTable symbolTable = createSymbolTable();
357
        Compiler compiler = createCompiler();
358
        Interpreter interpreter = createInterpreter(symbolTable);
359
        
360
        String source = "precio + 10 + 20 + 30";
361

  
362
        Code code = compiler.compileExpression(source);
363
        Object v = interpreter.run(code);
364
        assertEquals(260, ((Number)v).intValue());
365
    }
366
    
367
    public void testAddMul() {
368
        SymbolTable symbolTable = createSymbolTable();
369
        Compiler compiler = createCompiler();
370
        Interpreter interpreter = createInterpreter(symbolTable);
371
        
372
        String source = "precio + 10 * 2 + 20 + 30";
373

  
374
        Code code = compiler.compileExpression(source);
375
        Object v = interpreter.run(code);
376
        assertEquals(270, ((Number)v).intValue());
377
    }
378
    
379
    public void testAddMulPar() {
380
        SymbolTable symbolTable = createSymbolTable();
381
        Compiler compiler = createCompiler();
382
        Interpreter interpreter = createInterpreter(symbolTable);
383
        
384
        String source = "(precio + 10) * 2 + 20 + 30";
385

  
386
        Code code = compiler.compileExpression(source);
387
        Object v = interpreter.run(code);
388
        assertEquals(470, ((Number)v).intValue());
389
    }    
390

  
391
    public void testAbs() {
392
        SymbolTable symbolTable = createSymbolTable();
393
        Compiler compiler = createCompiler();
394
        Interpreter interpreter = createInterpreter(symbolTable);
395
        
396
        String source = "precio + abs(10)";
397

  
398
        Code code = compiler.compileExpression(source);
399
        Object v = interpreter.run(code);
400
        assertEquals(210, ((Number)v).intValue());
401
    }
402

  
403
    public void testAbs2() {
404
        SymbolTable symbolTable = createSymbolTable();
405
        Compiler compiler = createCompiler();
406
        Interpreter interpreter = createInterpreter(symbolTable);
407
        
408
        String source = "precio + abs(-10)";
409

  
410
        Code code = compiler.compileExpression(source);
411
        Object v = interpreter.run(code);
412
        assertEquals(210, ((Number)v).intValue());
413
    }
414
    
415
    public void testCeil() {
416
        SymbolTable symbolTable = createSymbolTable();
417
        Compiler compiler = createCompiler();
418
        Interpreter interpreter = createInterpreter(symbolTable);
419
        
420
        String source = "precio + CEIL(PI())";
421

  
422
        Code code = compiler.compileExpression(source);
423
        Object v = interpreter.run(code);
424
        assertEquals(204, ((Number)v).intValue());
425
    }
426
    
427
    public void testConcat() {
428
        SymbolTable symbolTable = createSymbolTable();
429
        Compiler compiler = createCompiler();
430
        Interpreter interpreter = createInterpreter(symbolTable);
431
        
432
        String source = "CONCAT(precio,' euros')";
433

  
434
        Code code = compiler.compileExpression(source);
435
        Object v = interpreter.run(code);
436
        assertEquals("200 euros", (String)v);
437
    }
438

  
439
    public void testAccuracy() {
440
 
441
        SymbolTable symbolTable = createSymbolTable();
442
        Compiler compiler = createCompiler();
443
        Interpreter interpreter = createInterpreter(symbolTable);
444
        Code code;
445
        Object v;
446
        
447
        compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
448

  
449
        code = compiler.compileExpression("[1990] = 0.168873933773767");
450
        v = interpreter.run(code);
451
        assertEquals(true, ((Boolean)v).booleanValue());
452

  
453
        code = compiler.compileExpression("[1990] = 0.1688739");
454
        v = interpreter.run(code);
455
        assertEquals(false, ((Boolean)v).booleanValue());
456

  
457
        interpreter.setAccuracy(0.0000001);
458
        v = interpreter.run(code);
459
        assertEquals(true, ((Boolean)v).booleanValue());
460
    }    
461

  
462
    public void test2fields() {
463
        SymbolTable symbolTable = createSymbolTable();
464
        Compiler compiler = createCompiler();
465
        Interpreter interpreter = createInterpreter(symbolTable);
466
        
467
        compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
468

  
469
        String source = "[1990] = [precio]";
470

  
471
        compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
472
        Code code = compiler.compileExpression(source);
473
        Object v = interpreter.run(code);
474
        assertEquals(false, ((Boolean)v).booleanValue());
475
    }
476

  
477

  
478
    public void testInvokeMethod1() {
479
        SymbolTable symbolTable = createSymbolTable();
480
        Compiler compiler = createCompiler();
481
        Interpreter interpreter = createInterpreter(symbolTable);
482
        
483
        String source = "'hola'.length()";
484

  
485
        Code code = compiler.compileExpression(source);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff