blob: d57220e2162b1cc5d1851868e0d0a00f39c83a56 [file] [log] [blame]
/*-
* Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
*
* This file was distributed by Oracle as part of a version of Oracle Berkeley
* DB Java Edition made available at:
*
* http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
*
* Please see the LICENSE file included in the top-level directory of the
* appropriate version of Oracle Berkeley DB Java Edition for a copy of the
* license and additional information.
*/
package com.sleepycat.je.cleaner;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class DbFileSummaryMap {
private Map<Long, DbFileSummary> map;
/**
* Creates a map of Long file number to DbFileSummary.
*/
public DbFileSummaryMap() {
map = new HashMap<>();
}
/**
* Returns the DbFileSummary for the given file, allocating it if
* necessary.
*
* <p>Must be called under the log write latch.</p>
*
* @param fileNum the file identifying the summary.
*/
public DbFileSummary get(Long fileNum) {
DbFileSummary summary = map.get(fileNum);
if (summary == null) {
summary = new DbFileSummary();
Object oldVal = map.put(fileNum, summary);
assert oldVal == null;
}
return summary;
}
public Set<Map.Entry<Long,DbFileSummary>> entrySet() {
return map.entrySet();
}
@Override
public String toString() {
return map.toString();
}
}