/* * 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.optimizedvcall; import org.adoptopenjdk.jitwatch.util.StringUtil; public class VirtualCallSite { private String className; private String memberName; private int bytecodeOffset; private int sourceLine; public String getClassName() { return className; } public String getClassNameForDisplay() { return StringUtil.getAbbreviatedFQName(className); } public String getMemberName() { return memberName; } public int getBytecodeOffset() { return bytecodeOffset; } public int getSourceLine() { return sourceLine; } public VirtualCallSite(String className, String memberName, int bytecodeOffset, int sourceLine) { super(); this.className = className; this.memberName = memberName; this.bytecodeOffset = bytecodeOffset; this.sourceLine = sourceLine; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + bytecodeOffset; result = prime * result + ((className == null) ? 0 : className.hashCode()); result = prime * result + ((memberName == null) ? 0 : memberName.hashCode()); result = prime * result + sourceLine; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } VirtualCallSite other = (VirtualCallSite) obj; if (bytecodeOffset != other.bytecodeOffset) { return false; } if (className == null) { if (other.className != null) { return false; } } else if (!className.equals(other.className)) { return false; } if (memberName == null) { if (other.memberName != null) { return false; } } else if (!memberName.equals(other.memberName)) { return false; } if (sourceLine != other.sourceLine) { return false; } return true; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("CallSite [className="); builder.append(className); builder.append(", memberName="); builder.append(memberName); builder.append(", bytecodeOffset="); builder.append(bytecodeOffset); builder.append(", sourceLine="); builder.append(sourceLine); builder.append("]"); return builder.toString(); } }