public Object require()

in src/main/java/org/apache/sling/scripting/esx/Module.java [644:669]


    public Object require(String id) throws ScriptException, IOException {
        log.debug("Trying to require Module with Id: " + id);
        // different behavior if we are the main module, require directly
        // run runScript directly on this module
        if (get("id").equals(id)
                && get("main") == this) {
            return runScript();
        }

        String loader = LOADER_JS;
        if (id.startsWith(LOADER_TEXT)) {
            loader = LOADER_TEXT;
        }

        if (id.startsWith(LOADER_RESOURCE)) {
            loader = LOADER_RESOURCE;
        }
        ModuleScript subModuleScript = resolve(cleanModulePathFromLoaders(id), (Resource) get(CONTEXT_FIELD_MODULE_RESOURCE), loader);

        Module subModule = new Module(factory, (Resource) get(CONTEXT_FIELD_RESOURCE),
                subModuleScript, id, this, (SlingScriptHelper) get(CONTEXT_FIELD_SLING), loader);
        Object result = subModule.runScript();
        children.add(subModule);
        subModule.put(CONTEXT_FIELD_IS_LOADED, true);
        return result;
    }