Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/RankRemapper.java @ 7254:fe32a7f9655e
Reduce usage of careless 'for (int i = 0; i < x.size(); i++)' pattern.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Sat, 05 Oct 2013 17:52:16 +0200 |
parents | 8efef772a488 |
children | 0a5239a1e46e |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.model.fixings; import java.util.IdentityHashMap; import org.apache.log4j.Logger; import gnu.trove.TIntIntHashMap; public class RankRemapper { private static Logger log = Logger.getLogger(RankRemapper.class); private TIntIntHashMap index2rank; private IdentityHashMap<QWI, Boolean> visited; public RankRemapper() { index2rank = new TIntIntHashMap(); visited = new IdentityHashMap<QWI, Boolean>(); } public void toMap(int index) { index2rank.put(index, index2rank.size()); } public <I extends QWI> void remap(I qwi) { if (!visited.containsKey(qwi)) { int idx = qwi.index; if (index2rank.containsKey(idx)) { qwi.index = index2rank.get(idx); } else if (log.isDebugEnabled()) { log.debug("Cannot remap " + idx); } visited.put(qwi, true); } } }