package de.danielbasedow.prospecter.core.query; import gnu.trove.map.hash.TIntIntHashMap; import gnu.trove.map.hash.TIntObjectHashMap; import java.util.BitSet; public class QueryManager { protected final TIntIntHashMap bitCounts = new TIntIntHashMap(); protected final TIntObjectHashMap<QueryNegativeCounter> negativeCounts = new TIntObjectHashMap<QueryNegativeCounter>(); public void addQuery(Query query) { bitCounts.put(query.getQueryId(), query.getBits()); if (query.hasNegatives()) { negativeCounts.put(query.getQueryId(), query.getNegativeMask()); } } public BitSet getMask(int queryId) { BitSet set = new BitSet(); set.set(0, bitCounts.get(queryId), true); return set; } public void deleteQuery(int queryId) { bitCounts.remove(queryId); } public QueryNegativeCounter getQueryNegativeCounter(int queryId) { return negativeCounts.get(queryId); } }