]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/store/VariableStore.java
567435a946eea6864ff416854586723de8b1c7fc
[simantics/platform.git] / bundles / org.simantics.graph.compiler / src / org / simantics / graph / compiler / internal / store / VariableStore.java
1 package org.simantics.graph.compiler.internal.store;\r
2 \r
3 import gnu.trove.map.hash.TIntIntHashMap;\r
4 \r
5 import java.util.ArrayList;\r
6 import java.util.List;\r
7 \r
8 import org.simantics.graph.compiler.SourceInfo;\r
9 import org.simantics.graph.compiler.SourceInfo.DefinitionPosition;\r
10 import org.simantics.graph.compiler.SourceInfo.SourceFile;\r
11 import org.simantics.graph.compiler.SourceInfo.Variable;\r
12 import org.simantics.graph.store.IStore;\r
13 \r
14 public class VariableStore implements IStore {\r
15         \r
16         public List<SourceFile> sourceFiles = new ArrayList<SourceFile>();\r
17         \r
18         @Override\r
19         public void map(TIntIntHashMap map) {\r
20                 for(SourceFile file : sourceFiles) {\r
21                         for(Variable variable : file.variables)\r
22                                 if(map.contains(variable.resource))\r
23                                         variable.resource = map.get(variable.resource);\r
24                         for(DefinitionPosition pos : file.definitionPositions)\r
25                                 if(map.contains(pos.resource))\r
26                                         pos.resource = map.get(pos.resource);\r
27                 }\r
28         }\r
29                 \r
30         public SourceInfo getSourceInfo() {             \r
31                 return new SourceInfo(sourceFiles);\r
32         }\r
33 \r
34         public void addSourceFile(SourceFile sourceFile) {\r
35                 sourceFiles.add(sourceFile);\r
36         }\r
37 \r
38 }\r