]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/StringModuleSource.java
(refs #7250) Merging master, minor CHR bugfixes
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / source / StringModuleSource.java
1 package org.simantics.scl.compiler.source;
2
3 import java.io.IOException;
4 import java.io.Reader;
5 import java.io.StringReader;
6
7 import org.simantics.scl.compiler.internal.codegen.types.JavaReferenceValidator;
8 import org.simantics.scl.compiler.internal.codegen.types.RuntimeJavaReferenceValidator;
9 import org.simantics.scl.compiler.module.repository.UpdateListener;
10
11 public class StringModuleSource extends TextualModuleSource {
12     private final String moduleText;
13     private final ClassLoader classLoader;
14
15     public StringModuleSource(String moduleName, ClassLoader classLoader, String moduleText) {
16         super(moduleName);
17         this.classLoader = classLoader;
18         this.moduleText = moduleText;
19     }
20
21     public StringModuleSource(String moduleName, String moduleText) {
22         this(moduleName, StringModuleSource.class.getClassLoader(), moduleText);
23     }
24     
25     @Override
26     protected Reader getSourceReader(UpdateListener listener)
27             throws IOException {
28         return new StringReader(moduleText);
29     }
30     
31     @Override
32     public ClassLoader getClassLoader() {
33         return classLoader;
34     }
35
36     @Override
37     protected JavaReferenceValidator<?, ?, ?, ?> getJavaReferenceValidator() {
38         return new RuntimeJavaReferenceValidator(getClassLoader());
39     }
40 }