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 / DefaultHistory.java @ 44340
History | View | Annotate | Download (1.82 KB)
1 | 44263 | jjdelcerro | 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.Expression; |
||
9 | import org.gvsig.expressionevaluator.History; |
||
10 | |||
11 | /**
|
||
12 | *
|
||
13 | * @author jjdelcerro
|
||
14 | */
|
||
15 | public class DefaultHistory |
||
16 | implements History
|
||
17 | { |
||
18 | |||
19 | public int maxsize; |
||
20 | public List<Expression> history; |
||
21 | |||
22 | public DefaultHistory(int size) { |
||
23 | this.maxsize = size;
|
||
24 | this.history = new ArrayList<>(); |
||
25 | } |
||
26 | |||
27 | @Override
|
||
28 | public boolean add(Expression element) { |
||
29 | if( element == null || element.isPhraseEmpty() ) { |
||
30 | return true; |
||
31 | } |
||
32 | if( !this.history.isEmpty() ) { |
||
33 | Expression last = this.history.get(0); |
||
34 | String lastPhrase = StringUtils.normalizeSpace(last.getPhrase());
|
||
35 | String curPhrase = StringUtils.normalizeSpace(element.getPhrase());
|
||
36 | if( StringUtils.equals(curPhrase, lastPhrase) ) {
|
||
37 | return true; |
||
38 | } |
||
39 | } |
||
40 | this.history.add(0, element); |
||
41 | if( this.history.size()>this.maxsize ) { |
||
42 | this.history.remove(this.history.size()-1); |
||
43 | } |
||
44 | return true; |
||
45 | } |
||
46 | |||
47 | @Override
|
||
48 | public List<Expression> toList() { |
||
49 | return Collections.unmodifiableList(this.history); |
||
50 | } |
||
51 | |||
52 | @Override
|
||
53 | public void clear() { |
||
54 | this.history.clear();
|
||
55 | } |
||
56 | |||
57 | @Override
|
||
58 | public boolean isEmpty() { |
||
59 | return this.history.isEmpty(); |
||
60 | } |
||
61 | |||
62 | @Override
|
||
63 | public int size() { |
||
64 | return this.history.size(); |
||
65 | } |
||
66 | |||
67 | @Override
|
||
68 | public Iterator<Expression> iterator() { |
||
69 | return this.history.iterator(); |
||
70 | } |
||
71 | |||
72 | @Override
|
||
73 | public Expression get(int position) { |
||
74 | return this.history.get(position); |
||
75 | } |
||
76 | |||
77 | } |