org.mozilla.javascript.commonjs.module

## Class RequireBuilder

- java.lang.Object
- - org.mozilla.javascript.commonjs.module.RequireBuilder

- All Implemented Interfaces:
    java.io.Serializable

      public class RequireBuilder
      extends java.lang.Object
      implements java.io.Serializable

  A builder for `Require` instances. Useful when you're creating many instances of `Require` that are identical except for their top-level scope and current `Context`. Also useful if you prefer configuring it using named setters instead of passing many parameters in a constructor. Every setter returns "this", so you can easily chain their invocations for additional convenience.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RequireBuilder()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Require` | `createRequire(Context cx, Scriptable globalScope)` Creates a new require() function.
    `RequireBuilder` | `setModuleScriptProvider(ModuleScriptProvider moduleScriptProvider)` Sets the `ModuleScriptProvider` for the `Require` instances that this builder builds.
    `RequireBuilder` | `setPostExec(Script postExec)` Sets the script that should execute in every module's scope after the module's own script has executed.
    `RequireBuilder` | `setPreExec(Script preExec)` Sets the script that should execute in every module's scope before the module's own script has executed.
    `RequireBuilder` | `setSandboxed(boolean sandboxed)` Sets whether the created require() instances will be sandboxed.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RequireBuilder

          public RequireBuilder()

  - ### Method Detail

    - #### setModuleScriptProvider

          public RequireBuilder setModuleScriptProvider(ModuleScriptProvider moduleScriptProvider)

      Sets the `ModuleScriptProvider` for the `Require` instances that this builder builds.
      Parameters:
        `moduleScriptProvider` - the module script provider for the `Require` instances that this builder builds.
      Returns:
        this, so you can chain ("fluidize") setter invocations

    - #### setPostExec

          public RequireBuilder setPostExec(Script postExec)

      Sets the script that should execute in every module's scope after the module's own script has executed.
      Parameters:
        `postExec` - the post-exec script.
      Returns:
        this, so you can chain ("fluidize") setter invocations

    - #### setPreExec

          public RequireBuilder setPreExec(Script preExec)

      Sets the script that should execute in every module's scope before the module's own script has executed.
      Parameters:
        `preExec` - the pre-exec script.
      Returns:
        this, so you can chain ("fluidize") setter invocations

    - #### setSandboxed

          public RequireBuilder setSandboxed(boolean sandboxed)

      Sets whether the created require() instances will be sandboxed. See `Require.Require(Context, Scriptable, ModuleScriptProvider, Script, Script, boolean)` for explanation.
      Parameters:
        `sandboxed` - true if the created require() instances will be sandboxed.
      Returns:
        this, so you can chain ("fluidize") setter invocations

    - #### createRequire

          public Require createRequire(Context cx,
                                       Scriptable globalScope)

      Creates a new require() function. You are still responsible for invoking either `Require.install(Scriptable)` or `Require.requireMain(Context, String)` to effectively make it available to its JavaScript program.
      Parameters:
        `cx` - the current context
        `globalScope` - the global scope containing the JS standard natives.
      Returns:
        a new Require instance.