package com.spbsu.crawl.bl.map;
import gnu.trove.map.hash.TIntObjectHashMap;
import java.util.Optional;
/**
* Created by noxoomo on 02/05/16.
*/
public class Layer<T> {
private final TIntObjectHashMap<T> data = new TIntObjectHashMap<>();
private int id(int x, int y) {
return x + 100000 * y;
}
public void clear() {
data.clear();
}
public Optional<T> item(final int x, final int y) {
final int key = id(x, y);
if (data.containsKey(key)) {
return Optional.of(data.get(key));
} else {
return Optional.empty();
}
}
public void setItem(final int x,
final int y,
final T type) {
final int key = id(x, y);
data.put(key, type);
}
public int itemCount() {
return data.size();
}
}