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 / DefaultGrammarSet.java @ 44139

History | View | Annotate | Download (2.28 KB)

1
package org.gvsig.expressionevaluator.impl;
2

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

    
13
/**
14
 *
15
 * @author jjdelcerro
16
 */
17
public class DefaultGrammarSet implements GrammarSet {
18

    
19
    private final List<Grammar> grammars;
20
    
21
    public DefaultGrammarSet() {
22
        this.grammars = new ArrayList<>();
23
    }
24
    
25
    @Override
26
    public Statement getApplicableStatement(StatementContext context) {
27
        for (Grammar grammar : this.grammars) {
28
            Statement stmt = grammar.getApplicableStatement(context);
29
            if( stmt != null ) {
30
                return stmt;
31
            }
32
        }
33
        return null;
34
    }
35

    
36
    @Override
37
    public boolean isReservedWord(String id) {
38
        for (Grammar grammar : this.grammars) {
39
            if( grammar.isReservedWord(id) ) {
40
                return true;
41
            }
42
        }
43
        return false;
44
    }
45

    
46
    public boolean contains(Grammar grammar) {
47
        if( grammar == null ) {
48
            return false;
49
        }
50
        for (Grammar theGrammar : this.grammars) {
51
            if( StringUtils.equalsIgnoreCase(theGrammar.getName(), grammar.getName()) ) {
52
                return true;
53
            }
54
        }
55
        return false;
56
    }
57
    
58
    @Override
59
    public void add(Grammar grammar) {
60
        if( grammar == null ) {
61
            return;
62
        }
63
        if( this.contains(grammar) ) {
64
            throw new IllegalArgumentException("The grammar set already contains the grammar '"+grammar+"'.");
65
        }
66
        this.grammars.add(grammar);
67
    }
68

    
69
    @Override
70
    public Grammar get(int i) {
71
        return this.grammars.get(i);
72
    }
73

    
74
    @Override
75
    public int size() {
76
        return this.grammars.size();
77
    }
78

    
79
    @Override
80
    public boolean isEmpty() {
81
        return this.grammars.isEmpty();
82
    }
83

    
84
    @Override
85
    public List<Grammar> toList() {
86
        return Collections.unmodifiableList(this.grammars);
87
    }
88

    
89
    @Override
90
    public Iterator<Grammar> iterator() {
91
        return this.grammars.iterator();
92
    }
93
    
94
}