/* * Copyright (c) 2013-2016 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.ATTR_ACTION; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.ATTR_BCI; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.ATTR_COMMENT; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.ATTR_REASON; import java.util.Map; import org.adoptopenjdk.jitwatch.model.Tag; public class UncommonTrap { private int bci; private String reason; private String action; private String comment; public int getBCI() { return bci; } public String getReason() { return reason; } public String getAction() { return action; } public String getComment() { return comment; } public UncommonTrap(int bci, String reason, String action, String comment) { this.bci = bci; this.reason = reason; this.action = action; this.comment = comment; } public static UncommonTrap parse(Tag tag) { UncommonTrap trap = null; Map<String, String> tagAttributes = tag.getAttributes(); String bci = tagAttributes.get(ATTR_BCI); String reason = tagAttributes.get(ATTR_REASON); String action = tagAttributes.get(ATTR_ACTION); String comment = tagAttributes.get(ATTR_COMMENT); if (bci != null) { int bciValue = Integer.valueOf(bci); trap = new UncommonTrap(bciValue, reason, action, comment); } return trap; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Uncommon trap"); builder.append(" ("); builder.append("reason:"); builder.append(reason); builder.append(", action:"); builder.append(action); if (comment != null) { builder.append(" comment:"); builder.append(comment); } builder.append(")"); return builder.toString(); } }