Simplify GuavaSchemaSourceCache.offer() a bit 26/99426/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 24 Jan 2022 16:35:30 +0000 (17:35 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 24 Jan 2022 16:41:04 +0000 (17:41 +0100)
We do not have to access the source id multiple times and can lower
cognitive load with an early return.

Change-Id: I418769fb17bb0f1b82107aa644c103d06b9c4a03
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/GuavaSchemaSourceCache.java

index 7747c93a6bfd76b69b1698bf63c3e0a1c38c3c82..ce337c829789afb40168314d2a1142c4e1f922bb 100644 (file)
@@ -71,21 +71,25 @@ public final class GuavaSchemaSourceCache<T extends SchemaSourceRepresentation>
 
     @Override
     protected void offer(final T source) {
-        final T present = cache.getIfPresent(source.getIdentifier());
-        if (present == null) {
-            cache.put(source.getIdentifier(), source);
+        final var srcId = source.getIdentifier();
+        if (cache.getIfPresent(srcId) != null) {
+            // We already have this source, do not track it
+            return;
+        }
 
-            final SchemaSourceRegistration<T> reg = register(source.getIdentifier());
-            final FinalizablePhantomReference<T> ref = new FinalizablePhantomReference<>(source, queue) {
-                @Override
-                public void finalizeReferent() {
-                    reg.close();
-                    regs.remove(this);
-                }
-            };
+        // Make the source available
+        cache.put(srcId, source);
+        final var reg = register(srcId);
 
-            regs.add(ref);
-        }
+        final FinalizablePhantomReference<T> ref = new FinalizablePhantomReference<>(source, queue) {
+            @Override
+            public void finalizeReferent() {
+                reg.close();
+                regs.remove(this);
+            }
+        };
+
+        regs.add(ref);
     }
 
     @Override