org.opencastproject.util.JsonObj Maven / Gradle / Ivy
/*
* Licensed to The Apereo Foundation under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
*
* The Apereo Foundation licenses this file to you under the Educational
* Community License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License
* at:
*
* http://opensource.org/licenses/ecl2.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
*/
package org.opencastproject.util;
import static java.lang.String.format;
import static org.opencastproject.util.data.Option.none;
import static org.opencastproject.util.data.Option.some;
import static org.opencastproject.util.data.functions.Misc.cast;
import static org.opencastproject.util.data.functions.Misc.chuck;
import org.opencastproject.util.data.Function;
import org.opencastproject.util.data.Option;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.util.List;
import java.util.Map;
import java.util.Set;
/** Accessor for JSON objects aka maps. */
// todo -- think about using specialized Exception (JsonExcpetion ?); handle parse exception in jsonObj(String)
public final class JsonObj {
private final Map json;
/** Create a wrapper for a map. */
public JsonObj(Map json) {
this.json = json;
}
/** Constructor function. */
public static JsonObj jsonObj(Map json) {
return new JsonObj(json);
}
/** Create a JsonObj from a JSON string. */
public static JsonObj jsonObj(String json) {
return new JsonObj(parse(json));
}
/** {@link #jsonObj(java.util.Map)} as a function. */
public static final Function