Coverage Summary for Class: CacheElement (co.rsk.util)
Class |
Class, %
|
Method, %
|
Line, %
|
CacheElement |
0%
(0/1)
|
0%
(0/4)
|
0%
(0/8)
|
1 /*
2 * This file is part of RskJ
3 * Copyright (C) 2017 RSK Labs Ltd.
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 package co.rsk.util;
20
21 /**
22 * Created by mario on 09/09/2016.
23 */
24 public class CacheElement<T> {
25
26 private T value;
27 private Long lastAccess;
28 private Long timeToLive;
29
30 public CacheElement(T value, Long timeToLive) {
31 this.value = value;
32 this.lastAccess = System.currentTimeMillis();
33 this.timeToLive = timeToLive;
34 }
35
36 public T value() {
37 return value;
38 }
39
40 public void updateLastAccess() {
41 this.lastAccess = System.currentTimeMillis();
42 }
43
44 public Boolean hasExpired() {
45 Long now = System.currentTimeMillis();
46 return (now - this.lastAccess) >= this.timeToLive;
47 }
48 }