]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/ClassModuleSource.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / source / ClassModuleSource.java
1 package org.simantics.scl.compiler.source;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.nio.charset.Charset;
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.ImportDeclaration;
10 import org.simantics.scl.compiler.module.repository.UpdateListener;
11
12 public class ClassModuleSource extends EncodedTextualModuleSource {
13     private final Class<?> clazz;
14     private final String path;
15     private final ClassLoader classLoader;
16     private final ImportDeclaration[] builtinImports;
17     
18     public ClassModuleSource(String moduleName, Class<?> clazz, ClassLoader classLoader, String path, ImportDeclaration[] builtinImports) {
19         super(moduleName);
20         this.clazz = clazz;
21         this.classLoader = classLoader;
22         this.path = path;
23         this.builtinImports = builtinImports;
24     }
25
26     @Override
27     protected InputStream getSourceStream(UpdateListener listener)
28             throws IOException {
29         return clazz.getResourceAsStream(path);
30     }
31
32     @Override
33     protected JavaReferenceValidator<?, ?, ?, ?> getJavaReferenceValidator() {
34         return new RuntimeJavaReferenceValidator(classLoader);
35     }
36     
37     @Override
38     protected ImportDeclaration[] getBuiltinImports(UpdateListener listener) {
39         return builtinImports;
40     }
41 }