Open omervk opened 5 years ago
Literals are currently only used for two purposes:
Literal
They are not usually needed together and whenever one is needed, a new Literal is instantiated. In a tight loop, this isn't optimal.
These could be replaced by a couple of functions (mock code):
static <From, To> Function<From, To> convert(from: Class<From>, to: Class<To>) static <T> Comparator<T> convert(clazz: Class<T>)
These functions could be cached and lookup could be via a hashtable at O(1).
This would also have another benefit of removing a type from the domain model, simplifying UnboundPredicate and BoundPredicate's signatures.
UnboundPredicate
BoundPredicate
Literal
s are currently only used for two purposes:They are not usually needed together and whenever one is needed, a new
Literal
is instantiated. In a tight loop, this isn't optimal.These could be replaced by a couple of functions (mock code):
These functions could be cached and lookup could be via a hashtable at O(1).
This would also have another benefit of removing a type from the domain model, simplifying
UnboundPredicate
andBoundPredicate
's signatures.