aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/ICache.java
blob: b99d87761ae03d270cb4a039c1858e10997398ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
/**
 *
 */
package cgeo.geocaching;

import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.LogType;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Basic interface for caches
 */
public interface ICache extends ILogable, ICoordinates {

    /**
     * @return Displayed owner, might differ from the real owner
     */
    public String getOwnerDisplayName();

    /**
     * @return GC username of the (actual) owner, might differ from the owner. Never empty.
     */
    public String getOwnerUserId();

    /**
     * @return true if the user is the owner of the cache, false else
     */
    public boolean isOwner();

    /**
     * @return true is the cache is archived, false else
     */
    public boolean isArchived();

    /**
     * @return true is the cache is a Premium Member cache only, false else
     */
    public boolean isPremiumMembersOnly();

    /**
     * @return Decrypted hint
     */
    public String getHint();

    /**
     * @return Description
     */
    public String getDescription();

    /**
     * @return Short Description
     */
    public String getShortDescription();


    /**
     * @return Id
     */
    public String getCacheId();

    /**
     * @return Guid
     */
    public String getGuid();

    /**
     * @return Location
     */
    public String getLocation();

    /**
     * @return Personal note
     */
    public String getPersonalNote();


    /**
     * @return true if the user gave a favorite point to the cache
     *
     */
    public boolean isFavorite();

    /**
     * @return number of favorite points
     *
     */
    public int getFavoritePoints();

    /**
     * @return true if the cache is on the watchlist of the user
     *
     */
    public boolean isOnWatchlist();

    /**
     * @return The date the cache has been hidden
     *
     */
    public Date getHiddenDate();

    /**
     * null safe list of attributes
     * 
     * @return the list of attributes for this cache
     */
    public List<String> getAttributes();

    /**
     * @return the list of trackables in this cache
     */
    public List<Trackable> getInventory();

    /**
     * @return the list of spoiler images
     */
    public List<Image> getSpoilers();

    /**
     * @return a statistic how often the caches has been found, disabled, archived etc.
     */
    public Map<LogType, Integer> getLogCounts();

    /**
     * get the name for lexicographical sorting.
     *
     * @return normalized, cached name which sort also correct for numerical parts in the name
     */
    public String getNameForSorting();

    /**
     * @return Tradi, multi etc.
     */
    CacheType getType();

    /**
     * @return Micro, small etc.
     */
    CacheSize getSize();

    /**
     * @return true if the user already found the cache
     *
     */
    boolean isFound();

    /**
     * @return true if the cache is disabled, false else
     */
    boolean isDisabled();

    /**
     * @return Difficulty assessment
     */
    float getDifficulty();

    /**
     * @return Terrain assessment
     */
    float getTerrain();
}