private @NonNull Object emptyObject(final @NonNull Class<? extends DataObject> bindingClass) {
final var childContext = context.getStreamChild(bindingClass);
- if (childContext instanceof NonPresenceContainerNodeCodecContext<?> nonPresence) {
- return nonPresence.emptyObject();
+ if (childContext instanceof StructuralContainerCodecContext<?> structural) {
+ return structural.emptyObject();
}
throw new VerifyException("Unexpected context " + childContext);
}
sealed class ContainerNodeCodecContext<D extends DataObject>
extends DataObjectCodecContext<D, ContainerLikeRuntimeType<?, ?>> implements RpcInputCodec<D>
- permits NonPresenceContainerNodeCodecContext {
+ permits StructuralContainerCodecContext {
ContainerNodeCodecContext(final DataContainerCodecPrototype<ContainerLikeRuntimeType<?, ?>> prototype) {
super(prototype);
}
if (containerLike instanceof ContainerRuntimeType container
&& container.statement().findFirstEffectiveSubstatement(PresenceEffectiveStatement.class)
.isEmpty()) {
- return new NonPresenceContainerNodeCodecContext(this);
+ return new StructuralContainerCodecContext(this);
}
return new ContainerNodeCodecContext(this);
} else if (type instanceof ListRuntimeType) {
/**
* A {@link ContainerNodeCodecContext} specialized for {@code container}s which do not have a presence statement.
*/
-final class NonPresenceContainerNodeCodecContext<D extends DataObject> extends ContainerNodeCodecContext<D> {
+final class StructuralContainerCodecContext<D extends DataObject> extends ContainerNodeCodecContext<D> {
private static final VarHandle EMPTY_OBJECT;
static {
try {
- EMPTY_OBJECT = MethodHandles.lookup().findVarHandle(NonPresenceContainerNodeCodecContext.class,
+ EMPTY_OBJECT = MethodHandles.lookup().findVarHandle(StructuralContainerCodecContext.class,
"emptyObject", DataObject.class);
} catch (NoSuchFieldException | IllegalAccessException e) {
throw new ExceptionInInitializerError(e);
@SuppressWarnings("unused")
private volatile D emptyObject;
- NonPresenceContainerNodeCodecContext(final DataContainerCodecPrototype<ContainerLikeRuntimeType<?, ?>> prototype) {
+ StructuralContainerCodecContext(final DataContainerCodecPrototype<ContainerLikeRuntimeType<?, ?>> prototype) {
super(prototype);
}