Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace Literals with Stateless Functions #98

Open
omervk opened this issue Nov 13, 2018 · 0 comments
Open

Replace Literals with Stateless Functions #98

omervk opened this issue Nov 13, 2018 · 0 comments

Comments

@omervk
Copy link
Contributor

omervk commented Nov 13, 2018

Literals are currently only used for two purposes:

  1. Type-safe casts
  2. Type-safe comparators

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.

Parth-Brahmbhatt pushed a commit to Parth-Brahmbhatt/iceberg that referenced this issue Apr 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant