public Class<T> getInterfaceClass() { if (super.getInterfaceClass() == null) { IOpenClass openClass = getCompiledOpenClass().getOpenClass(); String className = openClass.getName(); ClassLoader classLoader = getCompiledOpenClass().getClassLoader(); try { try {
private List<EnumerationDescriptor> loadEnumerations() { List<EnumerationDescriptor> descriptors = new ArrayList<>(); RulesEngineFactory<IEmptyLoader> engineFactory = new RulesEngineFactory<>(CodeGenConstants.DEFINITIONS_XLS, IEmptyLoader.class); IOpenClass openClass = engineFactory.getCompiledOpenClass().getOpenClass(); IRuntimeEnv env = engineFactory.getOpenL().getVm().getRuntimeEnv(); Object openClassInstance = openClass.newInstance(env); for (IOpenField field : openClass.getFields().values()) { IOpenClass type = field.getType(); Class<?> clazz = type.getInstanceClass(); if (clazz.equals(EnumPropertyDefinition[].class)) { String name = field.getName(); String enumName = getEnumName(name); EnumPropertyDefinition[] values = (EnumPropertyDefinition[]) field.get(openClassInstance, env); EnumerationDescriptor descriptor = new EnumerationDescriptor(); descriptor.setEnumName(enumName); descriptor.setValues(values); descriptors.add(descriptor); } } return descriptors; }
private CompiledOpenClass initializeOpenClass() { // put prebinder to openl IPrebindHandler prebindHandler = LazyBinderInvocationHandler.getPrebindHandler(); try { LazyBinderInvocationHandler.setPrebindHandler(new IPrebindHandler() { @Override public IOpenMethod processMethodAdded(IOpenMethod method, XlsLazyModuleOpenClass moduleOpenClass) { return makeLazyMethod(moduleOpenClass, method); } @Override public IOpenField processFieldAdded(IOpenField field, XlsLazyModuleOpenClass moduleOpenClass) { return makeLazyField(moduleOpenClass, field); } }); IOpenSourceCodeModule mainModule = createMainModule(); RulesEngineFactory<?> engineFactory = new RulesEngineFactory<Object>(mainModule, AOpenLEngineFactory.DEFAULT_USER_HOME, getOpenlName());// FIXME engineFactory.setDependencyManager(dependencyManager); engineFactory.setExecutionMode(true); CompiledOpenClass result = engineFactory.getCompiledOpenClass(); return result; } finally { LazyBinderInvocationHandler.setPrebindHandler(prebindHandler); } }
private CompiledOpenClass initializeOpenClass() { // put prebinder to openl IPrebindHandler prebindHandler = LazyBinderInvocationHandler.getPrebindHandler(); try { LazyBinderInvocationHandler.setPrebindHandler(new IPrebindHandler() { @Override public IOpenMethod processMethodAdded(IOpenMethod method, XlsLazyModuleOpenClass moduleOpenClass) { return makeLazyMethod(moduleOpenClass, method); } @Override public IOpenField processFieldAdded(IOpenField field, XlsLazyModuleOpenClass moduleOpenClass) { return makeLazyField(moduleOpenClass, field); } }); IOpenSourceCodeModule mainModule = createMainModule(); RulesEngineFactory<?> engineFactory = new RulesEngineFactory<Object>(mainModule, AOpenLEngineFactory.DEFAULT_USER_HOME, getOpenlName());// FIXME engineFactory.setDependencyManager(dependencyManager); engineFactory.setExecutionMode(true); CompiledOpenClass result = engineFactory.getCompiledOpenClass(); return result; } finally { LazyBinderInvocationHandler.setPrebindHandler(prebindHandler); } }
factory.getCompiledOpenClass().throwErrorExceptionsIfAny();