Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.impl / src / main / java / org / gvsig / expressionevaluator / impl / DefaultGrammar.java @ 44139

History | View | Annotate | Download (2.07 KB)

1
package org.gvsig.expressionevaluator.impl;
2

    
3
import org.gvsig.expressionevaluator.Grammar;
4
import java.util.ArrayList;
5
import java.util.Collections;
6
import java.util.HashSet;
7
import java.util.Iterator;
8
import java.util.List;
9
import java.util.Set;
10
import org.apache.commons.lang3.StringUtils;
11
import org.gvsig.expressionevaluator.Statement;
12
import org.gvsig.expressionevaluator.Statement.StatementContext;
13

    
14
/**
15
 *
16
 * @author jjdelcerro
17
 */
18
public class DefaultGrammar implements Grammar {
19

    
20
    private final String name;
21
    private final List<Statement> statements;
22
    private final Set<String> reservedWords;
23
    
24
    public DefaultGrammar(String name) {
25
        this.name = name;
26
        this.statements = new ArrayList<>();
27
        this.reservedWords = new HashSet<>();
28
    }
29
    
30
    @Override
31
    public String getName() {
32
        return this.name;
33
    }
34

    
35
    @Override
36
    public List<Statement> getStatements() {
37
        return Collections.unmodifiableList(this.statements);
38
    }
39

    
40
    @Override
41
    public Statement createStatement(String name) {
42
        DefaultStatement stmt = new DefaultStatement(name);
43
        return stmt;
44
    }
45

    
46
    @Override
47
    public void addStatement(Statement statement) {
48
        this.statements.add(statement);
49
    }
50

    
51
    @Override
52
    public Statement getApplicableStatement(StatementContext context) {
53
        for (Statement statement : statements) {
54
            if( statement.isApplicable(context) ) {
55
                return statement;
56
            }
57
        }
58
        return null;
59
    }
60

    
61
    @Override
62
    public String toString() {
63
        return this.getName();
64
    }
65

    
66
    @Override
67
    public void addReservedWord(String id) {
68
        if( StringUtils.isBlank(id) ) {
69
            return;
70
        }
71
        this.reservedWords.add(id.toUpperCase());
72
    }
73

    
74
    @Override
75
    public boolean isReservedWord(String id) {
76
        if( StringUtils.isBlank(id) ) {
77
            return false;
78
        }
79
        return this.reservedWords.contains(id.toUpperCase());
80
    }
81

    
82
    @Override
83
    public Iterator<Statement> iterator() {
84
        return this.statements.iterator();
85
    }
86

    
87
}