All Classes and Interfaces
Class
Description
Utility class for working with
AccessibleObject/Member'sVariant of
– the first function argument type
– the second function argument type
– the function result type
BiFunction that behaves like BiFunction, but which allows checked Exception's to be thrown
from its CheckedBiFunction.apply(Object, Object) methodVariant of
Consumer that behaves like Consumer, but which allows checked Exception's to be thrown
from its CheckedConsumer.accept(Object) methodUsed by the various Checked functional interfaces to indicate that a Checked
Exception has been catched and rethrownVariant of
– the function argument type
– the function result type
Function that behaves like Function, but which allows checked Exception's to be thrown
from its CheckedFunction.apply(Object) methodVariant of
Runnable that behaves like Runnable, but which allows checked Exception's to be thrown
from its CheckedRunnable.run() methodVariant of
Supplier that behaves like Supplier, but which allows checked Exception's to be thrown
from its CheckedSupplier.get() methodVariant of
– the first function argument type
– the second function argument type
– the third function argument type
– the function result type
TripleFunction that behaves like TripleFunction, but which allows checked Exception's to be thrown
from its CheckedTripleFunction.apply(Object, Object, Object) methodUtility class for working with
Class'sRepresents a
ComparableTuple with zero elementsRepresents a
Note:
ComparableTuple with two elements.Note:
ComparablePair supports ComparablePair.equals(Object) comparison using subclasses, e.g.:Represents a
Note:
ComparableTuple with one element.Note:
ComparableSingle supports ComparableSingle.equals(Object) comparison using subclasses, e.g.:ComparableTriple<T1 extends Comparable<? super T1>,T2 extends Comparable<? super T2>,T3 extends Comparable<? super T3>>
Represents a
Note:
ComparableTuple with three elements.Note:
ComparableTriple supports ComparableTriple.equals(Object) comparison using subclasses, e.g.:Base interface for all
A
Note:
ComparableTuple's.A
ComparableTuple is an immutable object that can contain the following (supported) number of elements:
Number of element in TupleConcrete ComparableTuple typeFactory method
0ComparableEmptyComparableTuple.empty()
1ComparableSingleComparableTuple.of(Comparable)
2ComparablePairComparableTuple.of(Comparable, Comparable)
3ComparableTripleComparableTuple.of(Comparable, Comparable, Comparable)
Note:
ComparableTuple (and its subclasses) supports Object.equals(Object) comparison using subclasses for the different subclassesUtility class for working with
Constructor'sDefault implementation for the
InterceptorChain.Represents a
This is used to represent a choice type that can have two different values, but only one value at a time.
The value can either be
Use
Use
Conditional logic can be applied using
Tuple with two potential elements, but where only one element can have a value
at a timeThis is used to represent a choice type that can have two different values, but only one value at a time.
The value can either be
Either._1() OR Either._2()Use
Either(Object, Object) or Either.of_1(Object)/Either.of_2(Object) to create
a new Either instanceUse
Either.is_1() or Either.is_2() to check which value is non-null
and Either._1() or Either._2() to get the value of the element.Conditional logic can be applied using
Either.ifIs_1(Consumer) or Either.ifIs_2(Consumer)The ElseIf/Else part of an
IfExpressionRepresents a
Tuple with zero elementsCollection of
Objects.requireNonNull(Object) replacement methodsUtility class for working with
Field'sUsing this class makes it possible to capture a generic/parameterized argument type, such as
When you specify a type reference using
With
You can specify a parameterized type using
The
And
You can also supply a non-parameterized type to
In which case
And
List<Money>,
instead of having to rely on the classical .class construct.When you specify a type reference using
.class you loose any Generic/Parameterized information, as you cannot write List<Money>.class,
only List.class.With
GenericType you can specify and capture parameterized type informationYou can specify a parameterized type using
GenericType:var genericType = new GenericType<List<Money>>(){};The
GenericType.type/GenericType.getType() will return List.classAnd
GenericType.genericType/GenericType.getGenericType() will return ParameterizedType, which can be introspected furtherYou can also supply a non-parameterized type to
GenericType:var genericType = new GenericType<Money>(){};In which case
GenericType.type/GenericType.getType() will return Money.classAnd
GenericType.genericType/GenericType.getGenericType() will return Money.class
An if expression is an
IfExpression.If(boolean, Object) and ElseIfExpression.Else(Object),
with multiple optional intermediate ElseIfExpression.ElseIf(boolean, Object)'s, which
returns a value of the evaluation of the if expression:An
IfPredicate is evaluated to resolve if an IfExpression or ElseIfExpression element is true
and hence the return value from the ifReturnValueSupplier must be returnedEach interceptor, configured on the method allows you to perform before, after or around interceptor logic according to your needs.
The
The
Interceptor is built around supporting Intercepting specific Operations, where an Operation is determined
by the user of the Interceptor.Generic interceptor chain concept that supports intercepting concrete
Interceptor operations to modify the behaviour or
add to the default behaviourAnnotation that can be applied to interceptors to control their order of execution
in the
The lower the number the higher the priority.
An interceptor with order 1 will be invoked before an interceptor with order 10.
InterceptorChainThe lower the number the higher the priority.
An interceptor with order 1 will be invoked before an interceptor with order 10.
Utility class for working with
Interfaces'sDetermines which among as set of matching methods are invoked
Common process life cycle interface
List utility methodsA
A
Example creating a
Message is an instance of a MessageTemplate with parameters bound to itA
Message instance is e.g. useful for error/validation reporting.Example creating a
Message from a MessageTemplate4:Slf4J compatible message formatter.
The
The
MessageFormatter supports formatting a message using Slf4J style message anchors:Named argument binding instance
The
Each
MessageTemplate concept supports structured messages with typed parameters.Each
MessageTemplate instance has a unique MessageTemplate.getKey() that clearly identifies the MessageTemplate.MessageTemplate keys can be nested, to support message hierarchies:Marker interface for classes or interfaces that contain
Example of a concrete
MessageTemplate fields, which can be queried using
MessageTemplates.getMessageTemplates(Class, boolean)Example of a concrete
MessageTemplates subclass:Strategy interface that determines the mechanics of which methods are candidates for matching,
what type a given method supports and how the method is invoked
Utility class for working with
Method'sConsumer that will be called if
PatternMatchingMethodInvoker.invoke(Object) or PatternMatchingMethodInvoker.invoke(Object, NoMatchingMethodsHandler) is called with an argument that doesn't match any methodsRepresents a
Note:
Tuple with two elements.Note:
Pair supports Pair.equals(Object) comparison using subclasses, e.g.:Utility class for working with
Methods/Method parameters and Constructors/Constructor
declaration parameters or method/constructor call argumentsClass used to represent the unknown type for a
null parameter to Parameters.argumentTypes(Object...)The purpose of the
PatternMatchingMethodInvoker is to support pattern matching a set of typed methods against a
concrete argument and have the method(s) that match the type resolved by the MethodPatternMatcher.resolveInvocationArgumentTypeFromObject(Object) will be invoked by the MethodPatternMatcher.invokeMethod(Method, Object, Object, Class) with the argumentCaching Java Reflection helper
Encapsulates
Depending on the version of Java you're using you may need to explicitly add something like the following to your Module Config or Java arguments to ensure that
See https://docs.oracle.com/en/java/javase/17/migrate/migrating-jdk-8-later-jdk-releases.html#GUID-12F945EB-71D6-46AF-8C3D-D354FD0B1781 for more information and to understand the implications of adding the
Encapsulates
Constructors, Methods and Fields while providing high-level method for invoking constructors, method and getting/setting fieldsDepending on the version of Java you're using you may need to explicitly add something like the following to your Module Config or Java arguments to ensure that
Reflector is allowed to perform Java reflectionSee https://docs.oracle.com/en/java/javase/17/migrate/migrating-jdk-8-later-jdk-releases.html#GUID-12F945EB-71D6-46AF-8C3D-D354FD0B1781 for more information and to understand the implications of adding the
--add-opens argument.Represents a
Note:
Tuple with one element.Note:
Single supports Single.equals(Object) comparison using subclasses, e.g.:A strategy that matches methods annotated with
Example using parameterized types:
matchOnMethodsAnnotatedWith
and have a single method argument that is the same type or a sub-type of the ARGUMENT_COMMON_ROOT_TYPE
Example using parameterized types:
Stop watch feature that allows you to time operations
Utility class for working with streams.
Builder for a
ThreadFactory to allow setting thread names, auto increment thread numbers, etc.The result of
StopWatch.time(Supplier)Represents a
Note:
Tuple with three elements.Note:
Triple supports equals(Object) comparison using subclasses, e.g.:Represents a function that accepts three arguments and produces a result.
This is a specialization of the
This is a specialization of the
Function interface.Base interface for all
A
Note:
Tuple's.A
Tuple is an immutable object that can contain the following (supported) number of elements:
Number of element in TupleConcrete Tuple typeFactory method
0EmptyTuple.empty()
1SingleTuple.of(Object)
2PairTuple.of(Object, Object)
3TripleTuple.of(Object, Object, Object)
Note:
Tuple (and its subclasses) supports Object.equals(Object) comparison using subclasses for the different subclasses