/* * Copyright (c) 2013-2015 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.model.bytecode; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.*; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.adoptopenjdk.jitwatch.util.StringUtil; public class BCParamSwitch implements IBytecodeParam { private Map<String, String> table = new HashMap<>(); public BCParamSwitch() { } public void put(String key, String value) { table.put(key, value); } @Override public String toString() { StringBuilder builder = new StringBuilder(); List<String> keyList = new ArrayList<>(table.keySet()); Collections.sort(keyList); for (String key : keyList) { String line = new StringBuilder(key).append(C_COLON).append(table.get(key)).toString(); builder.append(StringUtil.alignRight(line, 16)).append(S_NEWLINE); } return builder.toString(); } public String toString(int entryIndex) { StringBuilder builder = new StringBuilder(); List<String> keyList = new ArrayList<>(table.keySet()); Collections.sort(keyList); if (entryIndex < keyList.size()) { String key = keyList.get(entryIndex); String line = new StringBuilder(key).append(C_COLON).append(table.get(key)).toString(); builder.append(StringUtil.alignRight(line, 16)); } return builder.toString(); } public int getSize() { return table.size(); } @Override public Map<String, String> getValue() { return table; } }