com.r3corda.core.utilities

Package com.r3corda.core.utilities

Types

BriefLogFormatter class BriefLogFormatter : Formatter

A Java logging formatter that writes more compact output than the default.

Emoji object Emoji

A simple wrapper class that contains icons and support for printing them only when were connected to a terminal.

NonEmptySet class NonEmptySet<T> : MutableSet<T>

A set which is constrained to ensure it can never be empty. An initial value must be provided at construction, and attempting to remove the last element will cause an IllegalStateException. The underlying set is exposed for Kryo to access, but should not be accessed directly.

NonEmptySetSerializer object NonEmptySetSerializer

Custom serializer which understands it has to read in an item before trying to construct the set.

ProgressTracker class ProgressTracker

A progress tracker helps surface information about the progress of an operation to a user interface or API of some kind. It lets you define a set of steps that represent an operation. A step is represented by an object (typically a singleton).

RecordingMap class RecordingMap<K, V> : MutableMap<K, V>

A RecordingMap wraps a regular Map<K, V> and records the sequence of gets and puts to it. This is useful in white box unit tests to ensure that code is accessing a data store as much as you expect.

TimeWindow data class TimeWindow

A class representing a window in time from a particular instant, lasting a specified duration.

UntrustworthyData class UntrustworthyData<out T>

A small utility to approximate taint tracking: if a method gives you back one of these, it means the data came from a remote source that may be incentivised to pass us junk that violates basic assumptions and thus must be checked first. The wrapper helps you to avoid forgetting this vital step. Things you might want to check are:

Functions

loggerFor fun <T : Any> loggerFor(): <ERROR CLASS>
nonEmptySetOf fun <T> nonEmptySetOf(initial: T, vararg elements: T): NonEmptySet<T>
suggestInterestRateAnnouncementTimeWindow fun suggestInterestRateAnnouncementTimeWindow(index: String, source: String, date: LocalDate): TimeWindow

This whole file exists as short cuts to get demos working. In reality wed have static data and/or rules engine defining things like this. It currently resides in the core module because it needs to be visible to the IRS contract.

trace fun <ERROR CLASS>.trace(msg: () -> String): Unit