All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.owlike.genson.ext.jsr353.GensonJsonObject Maven / Gradle / Ivy

package com.owlike.genson.ext.jsr353;

import javax.json.*;
import java.util.AbstractMap;
import java.util.Map;
import java.util.Set;

class GensonJsonObject extends AbstractMap implements JsonObject {
  private final Map values;

  GensonJsonObject(Map values) {
    this.values = values;
  }

  @Override
  public Set> entrySet() {
    return values.entrySet();
  }

  @Override
  public JsonArray getJsonArray(String name) {
    return JsonArray.class.cast(values.get(name));
  }

  @Override
  public JsonObject getJsonObject(String name) {
    return JsonObject.class.cast(values.get(name));
  }

  @Override
  public JsonNumber getJsonNumber(String name) {
    return JsonNumber.class.cast(values.get(name));
  }

  @Override
  public JsonString getJsonString(String name) {
    return JsonString.class.cast(values.get(name));
  }

  @Override
  public String getString(String name) {
    return getJsonString(name).getString();
  }

  @Override
  public String getString(String name, String defaultValue) {
    if (isNull(name)) return defaultValue;
    return getString(name);
  }

  @Override
  public int getInt(String name) {
    return getJsonNumber(name).intValue();
  }

  @Override
  public int getInt(String name, int defaultValue) {
    if (isNull(name)) return defaultValue;
    return getInt(name);
  }

  @Override
  public boolean getBoolean(String name) {
    JsonValue value = values.get(name);
    if (JsonValue.TRUE.equals(value)) return true;
    if (JsonValue.FALSE.equals(value)) return false;
    throw new ClassCastException();
  }

  @Override
  public boolean getBoolean(String name, boolean defaultValue) {
    if (isNull(name)) return defaultValue;
    return getBoolean(name);
  }

  @Override
  public boolean isNull(String name) {
    JsonValue value = values.get(name);
    return (JsonValue.NULL.equals(value) || value == null);
  }

  @Override
  public ValueType getValueType() {
    return ValueType.OBJECT;
  }


  @Override
  public int hashCode() {
    return values.hashCode();
  }

  @Override
  public boolean equals(Object o) {
    return values.equals(o);
  }

  @Override
  public String toString() {
    return JSR353Bundle.toString(this);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy