/* * Copyright (c) 2010-2012 Grid Dynamics Consulting Services, Inc, All Rights Reserved * http://www.griddynamics.com * * This library is free software; you can redistribute it and/or modify it under the terms of * the Apache License; either * version 2.0 of the License, or any later version. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package com.griddynamics.jagger.util; /** * Class is used in chassis, web UI server and web UI client * to use it in web UI client - keep it simple (use only standard java libraries) */ public class MonitoringIdUtils { /** * used to separate monitoring plot name and agent id in MetricNameDto.metricName/SessionNameDto.metricName * note: '|' == '%7C' in while link processing */ public static final String AGENT_NAME_SEPARATOR = "|"; // not all special characters are escaped! // only required for agent Ids generation public static String getEscapedStringForRegex(String input) { return input. replace("[","\\[").replace("]","\\]"). replace("(", "\\(").replace(")","\\)"). replace("|","\\|"); } // keep functionality of following functions dependent // direct public static String getMonitoringMetricId(String monitoringName, String agentName){ return monitoringName + AGENT_NAME_SEPARATOR + agentName + AGENT_NAME_SEPARATOR; } // backwards public static MonitoringId splitMonitoringMetricId(String monitoringMetricId) { String splitString[] = monitoringMetricId.split("\\" + AGENT_NAME_SEPARATOR); // escape special char for regex if (splitString.length > 1) { return new MonitoringId(splitString[0],splitString[1]); } return null; } public static class MonitoringId { private String monitoringName; private String agentName; public MonitoringId(String monitoringName, String agentName) { this.monitoringName = monitoringName; this.agentName = agentName; } public String getAgentName() { return agentName; } public String getMonitoringName() { return monitoringName; } } }