1 package org.simantics.graph.compiler.internal.store;
\r
3 import gnu.trove.map.hash.TIntIntHashMap;
\r
4 import gnu.trove.map.hash.TIntObjectHashMap;
\r
5 import gnu.trove.set.hash.TIntHashSet;
\r
7 import org.simantics.graph.store.IStore;
\r
8 import org.simantics.graph.store.IndexMappingUtils;
\r
9 import org.simantics.ltk.Location;
\r
11 public class LocationStore implements IStore {
\r
13 TIntObjectHashMap<Location> locations;
\r
15 public LocationStore(TIntObjectHashMap<Location> locations) {
\r
16 this.locations = locations;
\r
19 public LocationStore() {
\r
20 this(new TIntObjectHashMap<Location>());
\r
24 public void map(TIntIntHashMap map) {
\r
25 locations = IndexMappingUtils.map(map, locations, new TIntHashSet());
\r
28 public Location getLocation(int id) {
\r
29 return locations.get(id);
\r
32 public void add(int resource, Location tree) {
\r
33 locations.putIfAbsent(resource, tree);
\r