default Optional<JsonElement> maybeGet(String...labels) { return Optional.ofNullable(get(labels)); }
default JsonObject getOrCreateObject(final String... labels) { return getJsonObject().getOrCreateObject(labels); } @JsonIgnore
default void verifyMutable() { if(!isMutable()) { throw new IllegalStateException("object is immutable"); } } default @Nonnull String prettyPrint() {
default JsonElement remove(String key) { verifyMutable(); return getJsonObject().remove(key); }
default void putAll(Map<? extends String, ? extends JsonElement> m) { verifyMutable(); getJsonObject().putAll(m); }
public void add(@Nonnull JsonDataObject...elements) { for (JsonDataObject element : elements) { add(element.getJsonObject()); } }
default JsonElement put(@Nonnull String key, JsonElement value) { verifyMutable(); return getJsonObject().put(key, value); }
default JsonElement get(final String... labels) { return getJsonObject().get(labels); }
default JsonElement put(@Nonnull String key, JsonBuilder value) { verifyMutable(); return getJsonObject().put(key, value); }
default Integer getInt(final String... labels) { return getJsonObject().getInt(labels); }
default void add(@SuppressWarnings("unchecked") @Nonnull Entry<String, JsonElement>... es) { verifyMutable(); getJsonObject().add(es); }
default Long getLong(@Nonnull String... labels) { return getJsonObject().getLong(labels); }
@JsonAnySetter default JsonElement put(@Nonnull String key, Object value) { verifyMutable(); return getJsonObject().put(key, value); }
default long get(@Nonnull String field, long defaultValue) { return getJsonObject().get(field, defaultValue); }
@JsonIgnore default boolean isEmpty() { return getJsonObject().isEmpty(); }
@JsonIgnore default boolean isMutable() { return getJsonObject().isMutable(); }
default Float getFloat(@Nonnull String... labels) { return getJsonObject().getFloat(labels); }
default JsonArray getArray(@Nonnull String... labels) { return getJsonObject().getArray(labels); }
default void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { getJsonObject().readObject(in); }
default Entry<String, JsonElement> get(int index) { return getJsonObject().get(index); }