Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.lib / src / main / java / org / gvsig / tools / bookmarksandhistory / impl / BaseBookmarks.java @ 1982

History | View | Annotate | Download (2.43 KB)

1
package org.gvsig.tools.bookmarksandhistory.impl;
2

    
3
import java.util.ArrayList;
4
import java.util.Date;
5
import java.util.Iterator;
6
import java.util.List;
7
import org.apache.commons.lang3.StringUtils;
8
import org.gvsig.tools.bookmarksandhistory.Bookmark;
9
import org.gvsig.tools.bookmarksandhistory.Bookmarks;
10
import org.gvsig.tools.util.LabeledValueImpl;
11

    
12
/**
13
 *
14
 * @author jjdelcerro
15
 * @param <T>
16
 */
17
public class BaseBookmarks<T>
18
        implements Bookmarks<T>
19
    {
20

    
21
    public class BaseBookmark 
22
            extends LabeledValueImpl<T>
23
            implements Bookmark<T>
24
        {
25

    
26
        private long lastUse;
27
        
28
        public BaseBookmark(String name, T value) {
29
            super(name, value);
30
            this.used();
31
        }
32
        
33
        @Override
34
        public final void used() {
35
            this.lastUse = new Date().getTime();
36
        }
37
        
38
        @Override
39
        public long getLastUse() {
40
            return this.lastUse;
41
        }
42

    
43
        @Override
44
        public void setName(String name) {
45
            this.label = name;
46
        }
47

    
48
        @Override
49
        public String getName() {
50
            return this.label;
51
        }
52

    
53
    }
54
    
55
    private final ArrayList<Bookmark> bookmarks;
56

    
57
    public BaseBookmarks() {
58
        this.bookmarks = new ArrayList<>();
59
    }
60
    
61
    @Override
62
    public boolean remove(String bookmarkName) {
63
        for (int i = 0; i < this.bookmarks.size(); i++) {
64
            Bookmark bookmark = this.bookmarks.get(i);
65
            if( StringUtils.equalsIgnoreCase(bookmarkName, bookmark.getName()) ) {
66
                this.bookmarks.remove(i);
67
                return true;
68
            }
69
        }
70
        return false;
71
    }
72

    
73
    @Override
74
    public List<Bookmark> toList() {
75
        return this.bookmarks;
76
    }
77

    
78
    @Override
79
    public boolean remove(Bookmark bookmark) {
80
        return this.bookmarks.remove(bookmark);
81
    }
82

    
83
    @Override
84
    public Bookmark add(String name, T value) {
85
        BaseBookmark bookmark = new BaseBookmark(name, value);
86
        this.bookmarks.add(bookmark);
87
        return bookmark;
88
    }
89

    
90
    @Override
91
    public boolean isEmpty() {
92
        return this.bookmarks.isEmpty();
93
    }
94

    
95
    @Override
96
    public int size() {
97
        return this.bookmarks.size();
98
    }
99

    
100
    @Override
101
    public Iterator<Bookmark> iterator() {
102
        return this.bookmarks.iterator();
103
    }
104

    
105
    @Override
106
    public Bookmark get(int position) {
107
        return this.bookmarks.get(position);
108
    }
109

    
110
    
111
}