- private final LoadingCache<NodeCodecContext, AbstractBindingNormalizedNodeCache> caches = CacheBuilder
- .newBuilder().build(new CacheLoader<NodeCodecContext, AbstractBindingNormalizedNodeCache>() {
- @Override
- public AbstractBindingNormalizedNodeCache load(final NodeCodecContext key) {
- if (key instanceof DataContainerCodecContext) {
- return new DataObjectNormalizedNodeCache(AbstractBindingNormalizedNodeCacheHolder.this,
- (DataContainerCodecContext<?, ?>) key);
- } else if (key instanceof OfTypeObject) {
- return new TypeObjectNormalizedNodeCache<>((OfTypeObject)key);
- } else {
- throw new IllegalStateException("Unhandled context " + key);
- }
+ private final LoadingCache<CodecContext, AbstractBindingNormalizedNodeCache> caches =
+ CacheBuilder.newBuilder().build(new CacheLoader<>() {
+ @Override
+ public AbstractBindingNormalizedNodeCache load(final CodecContext key) {
+ // FIXME: Use a switch expression once we have https://openjdk.org/jeps/441
+ if (key instanceof DataContainerCodecContext<?, ?, ?> dataContainer) {
+ return new DataObjectNormalizedNodeCache(AbstractBindingNormalizedNodeCacheHolder.this,
+ dataContainer);