/** * 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.inspection.api.util; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.util.Collections; import java.util.HashMap; import java.util.Map; /** * This utility class provides some utility functions to handle the options of the media inspection service. * This class is thread-safe. */ public final class Options { /* Empty map of options indicating no options set */ public static final Map<String, String> NO_OPTION = Collections.unmodifiableMap(new HashMap<String, String>()); /* Used to parse JSON. Gson is thread-safe */ private static final Gson gson = new Gson(); /* Hide utility class constructor */ private Options() { }; /** * Parse the media inspection service options JSON string * * @param options * Options in form of a JSON string * @return * Options as Java map data structure */ public static Map<String, String> fromJson(String options) { Map<String, String> result = null; if (options != null) { result = gson.fromJson(options, new TypeToken<Map<String, String>>() { }.getType()); } else { result = NO_OPTION; } return result; } /** * Transform media inspection service options to a JSON string * * @param options * Media inspection service options * @return * Media inspection service options represented by a JSON string */ public static String toJson(Map<String, String> options) { String result = null; if (options != null) { result = gson.toJson(options); } else { result = gson.toJson(NO_OPTION); } return result; } }