1 package org.simantics.scl.compiler.top;
3 import java.lang.reflect.Field;
5 import org.simantics.scl.compiler.internal.codegen.writer.ExternalConstant;
7 public class StandardModuleInitializer implements ModuleInitializer {
8 private final String moduleClassName;
9 private final ExternalConstant[] externalConstants;
11 private StandardModuleInitializer(String moduleClassName,
12 ExternalConstant[] externalConstants) {
13 this.moduleClassName = moduleClassName;
14 this.externalConstants = externalConstants;
18 public void initializeModule(ClassLoader classLoader) throws Exception {
19 Class<?> clazz = classLoader.loadClass(moduleClassName.replace('/', '.'));
20 for(ExternalConstant ec : externalConstants) {
21 Field field = clazz.getField(ec.fieldName);
22 field.set(null, ec.value);
26 public static ModuleInitializer create(String moduleClassName, ExternalConstant[] externalConstants) {
27 if(externalConstants.length == 0)
30 return new StandardModuleInitializer(moduleClassName, externalConstants);