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.

Version:
  $Id: RequireBuilder.java,v 1.4 2011/04/07 20:26:11 hannes%helma.at Exp $
Author:
  Attila Szegedi
See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`RequireBuilder()`

### Method Summary

Methods
`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.