public final class HostAccess extends Object
There are three predefined instances of host access policies:
HostAccess.EXPLICIT
- Java host methods or fields, must be public and be annotated with
@Export
to make them accessible to the guest language.
HostAccess.NONE
- Does not allow any access to methods or fields of host objects. Java host
objects may still be passed into a context, but they cannot be accessed.
HostAccess.ALL
- Does allow full unrestricted access to public methods or fields of host
objects. Note that this policy allows unrestricted access to reflection. It is highly discouraged
from using this policy in environments where the guest application is not fully trusted.
HostAccess.newBuilder()
. The builder allows to
specify a custom export annotation and allowed and denied methods or fields.Modifier and Type | Class and Description |
---|---|
class |
HostAccess.Builder
Builder to create a custom
host access policy . |
static interface |
HostAccess.Export
Annotation used by the predefined
HostAccess.EXPLICIT access policy to mark public
constructors, methods and fields in public classes that should be accessible by the guest
application. |
static interface |
HostAccess.Implementable
Allows guest language to implement a Java type.
|
static class |
HostAccess.TargetMappingPrecedence
Represents the precedence of a target type mapping.
|
Modifier and Type | Field and Description |
---|---|
static HostAccess |
ALL
Predefined host access policy that allows full unrestricted access to public methods or
fields of public host classes.
|
static HostAccess |
EXPLICIT
Predefined host access policy that allows access to public host methods or fields that were
annotated with @Export and were declared in public class.
|
static HostAccess |
NONE
Predefined host access policy that disallows any access to public host methods or fields.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj) |
int |
hashCode() |
static HostAccess.Builder |
newBuilder()
Creates a new builder that allows to create a custom host access policy.
|
static HostAccess.Builder |
newBuilder(HostAccess conf)
Creates a new builder that allows to create a custom host access policy based of a preset
configuration.
|
String |
toString() |
public static final HostAccess EXPLICIT
Context.Builder.allowAllAccess(boolean)
is
false
.
Equivalent of using the following builder configuration:
HostAccess.newBuilder().allowAccessAnnotatedBy(HostAccess.Export.class).// allowImplementationsAnnotatedBy(HostAccess.Implementable.class).build();
public static final HostAccess ALL
Context.Builder.allowAllAccess(boolean)
is true
.
Equivalent of using the following builder configuration:
HostAccess.newBuilder()
.allowPublicAccess(true)
.allowAllImplementations(true)
.allowAllClassImplementations(true)
.allowArrayAccess(true)
.allowListAccess(true)
.build();
public static final HostAccess NONE
Equivalent of using the following builder configuration:
HostAccess.newBuilder().build();
public static HostAccess.Builder newBuilder()
method
.public static HostAccess.Builder newBuilder(HostAccess conf)
method
.