X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fcodec%2Fimpl%2FLazyBindingMapIterState.java;h=dac19d9d7ffea94674559d0726e0f3bfb4bb436e;hb=9f23891d96e635e1cd30c699f9b72b9336fc9d06;hp=8c7612f42f514492601a119112a2c32b62223664;hpb=98d1ba0a51e29b3009a0038e078a043a4aed688d;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMapIterState.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMapIterState.java index 8c7612f42f..dac19d9d7f 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMapIterState.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMapIterState.java @@ -13,6 +13,7 @@ import static org.opendaylight.mdsal.binding.dom.codec.impl.LazyBindingList.OBJ_ import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterators; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodHandles.Lookup; import java.lang.invoke.VarHandle; @@ -23,8 +24,8 @@ import java.util.Map.Entry; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.Identifiable; -import org.opendaylight.yangtools.yang.binding.Identifier; +import org.opendaylight.yangtools.yang.binding.Key; +import org.opendaylight.yangtools.yang.binding.KeyAware; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,7 +36,7 @@ import org.slf4j.LoggerFactory; * @param key type * @param value type */ -final class LazyBindingMapIterState, V extends DataObject & Identifiable> +final class LazyBindingMapIterState, V extends DataObject & KeyAware> extends LazyBindingMap.State { private static final Logger LOG = LoggerFactory.getLogger(LazyBindingMapIterState.class); private static final VarHandle ENTRY_SET; @@ -58,12 +59,15 @@ final class LazyBindingMapIterState, V extends DataObjec // Secondary views derived from values, used via varhandles above @SuppressWarnings("unused") + @SuppressFBWarnings(value = "UUF_UNUSED_FIELD", justification = "https://github.com/spotbugs/spotbugs/issues/2749") private volatile KeySet keySet; @SuppressWarnings("unused") + @SuppressFBWarnings(value = "UUF_UNUSED_FIELD", justification = "https://github.com/spotbugs/spotbugs/issues/2749") private volatile EntrySet entrySet; // Lookup map, instantiated on demand, used via varhandle above @SuppressWarnings("unused") + @SuppressFBWarnings(value = "URF_UNREAD_FIELD", justification = "https://github.com/spotbugs/spotbugs/issues/2749") private volatile ImmutableMap lookupMap; LazyBindingMapIterState(final LazyBindingMap map) { @@ -131,7 +135,7 @@ final class LazyBindingMapIterState, V extends DataObjec return (witness = KEY_SET.compareAndExchangeRelease(this, null, ret)) == null ? ret : (KeySet) witness; } - private static final class EntrySet, V extends DataObject & Identifiable> + private static final class EntrySet, V extends DataObject & KeyAware> extends AbstractSet> implements Immutable { private final Values values; @@ -158,7 +162,7 @@ final class LazyBindingMapIterState, V extends DataObjec } } - private static final class KeySet, V extends DataObject & Identifiable> + private static final class KeySet, V extends DataObject & KeyAware> extends AbstractSet implements Immutable { private final Values values; @@ -173,7 +177,7 @@ final class LazyBindingMapIterState, V extends DataObjec @Override public Iterator iterator() { - return Iterators.transform(values.iterator(), value -> value.key()); + return Iterators.transform(values.iterator(), KeyAware::key); } @Override @@ -188,14 +192,14 @@ final class LazyBindingMapIterState, V extends DataObjec * the array to hold all values upfront and populate it with MapEntry nodes. That allows us to perform lock-free * access, as we just end up CASing MapEntryNodes with their Binding replacements. */ - private static final class Values, V extends DataObject & Identifiable> + private static final class Values, V extends DataObject & KeyAware> extends AbstractSet implements Immutable { private final LazyBindingMap map; private final Object[] objects; Values(final LazyBindingMap map) { this.map = requireNonNull(map); - objects = map.mapNode().getValue().toArray(); + objects = map.mapNode().body().toArray(); } @Override