EMMA Coverage Report (generated Sun Mar 01 22:06:14 CET 2015)
[all classes][org.h2.util]

COVERAGE SUMMARY FOR SOURCE FILE [CacheSecondLevel.java]

nameclass, %method, %block, %line, %
CacheSecondLevel.java100% (1/1)0%   (0/11)0%   (0/112)0%   (0/29)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CacheSecondLevel100% (1/1)0%   (0/11)0%   (0/112)0%   (0/29)
CacheSecondLevel (Cache, Map): void 0%   (0/1)0%   (0/9)0%   (0/4)
clear (): void 0%   (0/1)0%   (0/7)0%   (0/3)
find (int): CacheObject 0%   (0/1)0%   (0/16)0%   (0/4)
get (int): CacheObject 0%   (0/1)0%   (0/16)0%   (0/4)
getAllChanged (): ArrayList 0%   (0/1)0%   (0/4)0%   (0/1)
getMaxMemory (): int 0%   (0/1)0%   (0/4)0%   (0/1)
getMemory (): int 0%   (0/1)0%   (0/4)0%   (0/1)
put (CacheObject): void 0%   (0/1)0%   (0/13)0%   (0/3)
remove (int): boolean 0%   (0/1)0%   (0/19)0%   (0/3)
setMaxMemory (int): void 0%   (0/1)0%   (0/5)0%   (0/2)
update (int, CacheObject): CacheObject 0%   (0/1)0%   (0/15)0%   (0/3)

1/*
2 * Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
3 * and the EPL 1.0 (http://h2database.com/html/license.html).
4 * Initial Developer: Jan Kotek
5 */
6package org.h2.util;
7 
8import java.util.ArrayList;
9import java.util.Map;
10 
11/**
12 * Cache which wraps another cache (proxy pattern) and adds caching using map.
13 * This is useful for WeakReference, SoftReference or hard reference cache.
14 */
15class CacheSecondLevel implements Cache {
16 
17    private final Cache baseCache;
18    private final Map<Integer, CacheObject> map;
19 
20    CacheSecondLevel(Cache cache, Map<Integer, CacheObject> map) {
21        this.baseCache = cache;
22        this.map = map;
23    }
24 
25    @Override
26    public void clear() {
27        map.clear();
28        baseCache.clear();
29    }
30 
31    @Override
32    public CacheObject find(int pos) {
33        CacheObject ret = baseCache.find(pos);
34        if (ret == null) {
35            ret = map.get(pos);
36        }
37        return ret;
38    }
39 
40    @Override
41    public CacheObject get(int pos) {
42        CacheObject ret = baseCache.get(pos);
43        if (ret == null) {
44            ret = map.get(pos);
45        }
46        return ret;
47    }
48 
49    @Override
50    public ArrayList<CacheObject> getAllChanged() {
51        return baseCache.getAllChanged();
52    }
53 
54    @Override
55    public int getMaxMemory() {
56        return baseCache.getMaxMemory();
57    }
58 
59    @Override
60    public int getMemory() {
61        return baseCache.getMemory();
62    }
63 
64    @Override
65    public void put(CacheObject r) {
66        baseCache.put(r);
67        map.put(r.getPos(), r);
68    }
69 
70    @Override
71    public boolean remove(int pos) {
72        boolean result = baseCache.remove(pos);
73        result |= map.remove(pos) != null;
74        return result;
75    }
76 
77    @Override
78    public void setMaxMemory(int size) {
79        baseCache.setMaxMemory(size);
80    }
81 
82    @Override
83    public CacheObject update(int pos, CacheObject record) {
84        CacheObject oldRec = baseCache.update(pos, record);
85        map.put(pos, record);
86        return oldRec;
87    }
88 
89}

[all classes][org.h2.util]
EMMA 2.0.5312 (C) Vladimir Roubtsov