]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/store/LocationStore.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graph.compiler / src / org / simantics / graph / compiler / internal / store / LocationStore.java
1 package org.simantics.graph.compiler.internal.store;\r
2 \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
6 \r
7 import org.simantics.graph.store.IStore;\r
8 import org.simantics.graph.store.IndexMappingUtils;\r
9 import org.simantics.ltk.Location;\r
10 \r
11 public class LocationStore implements IStore {\r
12         \r
13         TIntObjectHashMap<Location> locations;\r
14 \r
15         public LocationStore(TIntObjectHashMap<Location> locations) {\r
16                 this.locations = locations;\r
17         }\r
18 \r
19         public LocationStore() {\r
20                 this(new TIntObjectHashMap<Location>());\r
21         }\r
22 \r
23         @Override\r
24         public void map(TIntIntHashMap map) {\r
25                 locations = IndexMappingUtils.map(map, locations, new TIntHashSet());\r
26         }\r
27         \r
28         public Location getLocation(int id) {\r
29                 return locations.get(id);\r
30         }\r
31 \r
32         public void add(int resource, Location tree) {\r
33                 locations.putIfAbsent(resource, tree);          \r
34         }\r
35 \r
36 }\r