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

com.codereligion.bugsnag.logback.model.MetaDataVO Maven / Gradle / Ivy

The newest version!
/**
 * Copyright 2014 www.codereligion.com
 *
 * Licensed under the Apache 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://www.apache.org/licenses/LICENSE-2.0
 *
 * 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 com.codereligion.bugsnag.logback.model;

import java.util.HashMap;
import java.util.Map;

/**
 * Represents the bugsnag meta data structure which resembles this json structure:
 *
 * 
 *     {
 *         "anyTabName": {
 *             "anyKeyName": "someValue",
 *             "anyOtherKeyName": {
 *                 "nestedKeyName": "someValue"
 *             }
 *         },
 *         "anyOtherTabName": {
 *             "anyKeyName": "someValue"
 *         }
 *     }
 *
 * 
* * @author Sebastian Gröbler */ public class MetaDataVO { private Map tabsByName = new HashMap(); /** * Adds the given {@code key}/{@code value} pair to the specified {@code tabName}. * * @param tabName the name of the tab to add the key/value pair * @param key the key to map the {@code value} to * @param value the value for the given {@code key} * @return a reference of this object */ public MetaDataVO addToTab(final String tabName, final String key, final Object value) { getAndEnsureTabExistence(tabName).add(key, value); return this; } /** * The underlying data structure of this object. * * @return a map of string to {@link TabVO} */ public Map getTabsByName() { return tabsByName; } private TabVO getAndEnsureTabExistence(final String tabName) { final TabVO tab = tabsByName.get(tabName); final boolean tabDoesNotExist = tab == null; if (tabDoesNotExist) { final TabVO newTab = new TabVO(); tabsByName.put(tabName, newTab); return newTab; } return tab; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy