+ /**
+ * Return the default value object. Implementations of this method are explicitly allowed to throw unchecked
+ * exceptions, which are propagated as-is upwards the stack.
+ *
+ * @return The default value object, or null if the default value is not defined.
+ */
+ @Nullable Object defaultObject() {
+ return null;
+ }
+
+ protected abstract Object deserializeObject(NormalizedNode normalizedNode);