import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
-import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.binding.dom.codec.util.AugmentationReader;
import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
*/
public abstract class AugmentableCodecDataObject<T extends DataObject & Augmentable<T>>
extends CodecDataObject<T> implements Augmentable<T>, AugmentationHolder<T> {
- private final @NonNull DataObjectCodecContext<T, ?> context;
-
@SuppressWarnings("rawtypes")
private static final AtomicReferenceFieldUpdater<AugmentableCodecDataObject, ImmutableMap>
CACHED_AUGMENTATIONS_UPDATER = AtomicReferenceFieldUpdater.newUpdater(AugmentableCodecDataObject.class,
protected AugmentableCodecDataObject(final DataObjectCodecContext<T, ?> context,
final NormalizedNodeContainer<?, ?, ?> data) {
super(context, data);
- this.context = requireNonNull(context, "Context must not be null");
}
@SuppressWarnings("unchecked")
}
@SuppressWarnings({"unchecked","rawtypes"})
- final Optional<DataContainerCodecContext<?, ?>> optAugCtx = context.possibleStreamChild(
+ final Optional<DataContainerCodecContext<?, ?>> optAugCtx = codecContext().possibleStreamChild(
(Class) augmentationType);
if (optAugCtx.isPresent()) {
final DataContainerCodecContext<?, ?> augCtx = optAugCtx.get();
return local;
}
- local = ImmutableMap.copyOf(context.getAllAugmentationsFrom(codecData()));
+ local = ImmutableMap.copyOf(codecContext().getAllAugmentationsFrom(codecData()));
return CACHED_AUGMENTATIONS_UPDATER.compareAndSet(this, null, local) ? local : cachedAugmentations;
}