InteractionContext

Provides the user and scenario specific environment for an Interaction .

API

InteractionContext.java
class InteractionContext {
  InteractionContext ofUserWithSystemDefaults(UserMemento user)     (1)
  UserLocale getLocale()
  InteractionContext withTimeZoneIfAny(Optional<ZoneId> zoneIdIfAny)     (2)
  UnaryOperator<InteractionContext> switchUser(UserMemento userMemento)     (3)
  UnaryOperator<InteractionContext> switchClock(VirtualClock clock)     (4)
  UnaryOperator<InteractionContext> switchLocale(UserLocale locale)     (5)
  UnaryOperator<InteractionContext> switchTimeZone(ZoneId timeZone)     (6)
  UnaryOperator<T> combine(UnaryOperator<T>... mappers)     (7)
  UnaryOperator<T> combine(Stream<UnaryOperator<T>> mappers)     (8)
  ZoneOffset getTimeZoneOffsetNow()     (9)
}
1 ofUserWithSystemDefaults(UserMemento)

Creates a new InteractionContext with the specified user and system defaults for clock, locale and time-zone.

2 withTimeZoneIfAny(Optional)

Only override if zoneIdIfAny is present, otherwise acts as identity operation.

3 switchUser(UserMemento)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified UserMemento .

4 switchClock(VirtualClock)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified VirtualClock .

5 switchLocale(UserLocale)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified Locale .

6 switchTimeZone(ZoneId)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified ZoneId .

7 combine(UnaryOperator)

Convenience method to combine UnaryOperator s, for example as per #switchUser(UserMemento) and #switchTimeZone(ZoneId) .

8 combine(Stream)

Convenience method to combine UnaryOperator s, for example as per #switchUser(UserMemento) and #switchTimeZone(ZoneId) . credit: https://stackoverflow.com/a/51065029/56880

9 getTimeZoneOffsetNow()

Returns the ZoneOffset at the current time Instant (at which ZoneId rules apply to calculate the offset).

Members

ofUserWithSystemDefaults(UserMemento)

Creates a new InteractionContext with the specified user and system defaults for clock, locale and time-zone.

withTimeZoneIfAny(Optional)

Only override if zoneIdIfAny is present, otherwise acts as identity operation.

switchUser(UserMemento)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified UserMemento .

switchClock(VirtualClock)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified VirtualClock .

switchLocale(UserLocale)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified Locale .

switchTimeZone(ZoneId)

Convenience method for use with org.apache.causeway.applib.services.sudo.SudoService , returning a UnaryOperator that will act upon the provided InteractionContext to return the same but with the specified ZoneId .

combine(UnaryOperator)

Convenience method to combine UnaryOperator s, for example as per #switchUser(UserMemento) and #switchTimeZone(ZoneId) .

this implementation can result in heap pollution; better to use the #combine(Stream) overload .

combine(Stream)

Convenience method to combine UnaryOperator s, for example as per #switchUser(UserMemento) and #switchTimeZone(ZoneId) . credit: https://stackoverflow.com/a/51065029/56880

getTimeZoneOffsetNow()

Returns the ZoneOffset at the current time Instant (at which ZoneId rules apply to calculate the offset).

Implementation

This is a concrete class.

Usage Notes

Typically domain objects will have little need to interact with the InteractionContext and Interaction directly. The services are used within the framework however, primarily to support the ExecutionSubscriber SPI, and to emit domain events over the EventBusService.

See Also