/* * Copyright 2014-2016 CyberVision, Inc. * * 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 org.kaaproject.kaa.server.admin.client.mvp.place; import com.google.gwt.http.client.URL; import java.util.HashMap; import java.util.Map; public class PlaceParams { public static final String PARAMS_SEPARATOR = "&"; private static Map<String, String> paramsMap = new HashMap<String, String>(); /** * Generate token. * * @return the token */ public static String generateToken() { StringBuilder paramsUrl = new StringBuilder(); for (String key : paramsMap.keySet()) { String val = paramsMap.get(key); if (paramsUrl.length() > 0) { paramsUrl.append(PARAMS_SEPARATOR); } paramsUrl.append(key).append("=").append(URL.encodeQueryString(val)); } return paramsUrl.toString(); } /** * Params from token. * * @param token the token */ public static void paramsFromToken(String token) { paramsMap.clear(); if (token != null && token.trim().length() > 0) { String[] params = token.split(PARAMS_SEPARATOR); for (String param : params) { String[] keyVal = param.split("="); if (keyVal != null && keyVal.length == 2) { paramsMap.put(keyVal[0], URL.decodeQueryString(keyVal[1])); } } } } public static void clear() { paramsMap.clear(); } public static String getParam(String key) { String val = paramsMap.get(key); return isEmptyVal(val) ? null : val; } public static boolean getBooleanParam(String key) { String val = paramsMap.get(key); return isEmptyVal(val) ? false : Boolean.valueOf(val); } /** * Get int param. * * @param key the key * @return int value */ public static int getIntParam(String key) { String val = paramsMap.get(key); try { return isEmptyVal(val) ? 0 : Integer.valueOf(val); } catch (NumberFormatException nfe) { return 0; } } public static boolean hasParam(String key) { return paramsMap.containsKey(key); } /** * Get double param. * * @param key the key * @return double value */ public static double getDoubleParam(String key) { String val = paramsMap.get(key); try { return isEmptyVal(val) ? 0 : Double.valueOf(val); } catch (NumberFormatException nfe) { return 0; } } private static boolean isEmptyVal(String val) { return val == null || val.length() == 0 || val.equals("null"); } public static void putParam(String key, String val) { paramsMap.put(key, val); } public static void putBooleanParam(String key, boolean val) { paramsMap.put(key, Boolean.toString(val)); } public static void putDoubleParam(String key, double val) { paramsMap.put(key, Double.toString(val)); } public static void putIntParam(String key, int val) { paramsMap.put(key, Integer.toString(val)); } }