/* * 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.model.IMetaMember; import org.adoptopenjdk.jitwatch.model.bytecode.BytecodeInstruction; public class OptimizedVirtualCall { private IMetaMember callerMember; private IMetaMember calleeMember; private VirtualCallSite callsite; private BytecodeInstruction bytecodeInstruction; public OptimizedVirtualCall(IMetaMember callerMember, IMetaMember calleeMember, VirtualCallSite callsite, BytecodeInstruction bytecodeInstruction) { super(); this.callerMember = callerMember; this.calleeMember = calleeMember; this.callsite = callsite; this.bytecodeInstruction = bytecodeInstruction; } public IMetaMember getCallerMember() { return callerMember; } public IMetaMember getCalleeMember() { return calleeMember; } public VirtualCallSite getCallsite() { return callsite; } public BytecodeInstruction getBytecodeInstruction() { return bytecodeInstruction; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((bytecodeInstruction == null) ? 0 : bytecodeInstruction.hashCode()); result = prime * result + ((calleeMember == null) ? 0 : calleeMember.hashCode()); result = prime * result + ((callerMember == null) ? 0 : callerMember.hashCode()); result = prime * result + ((callsite == null) ? 0 : callsite.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } OptimizedVirtualCall other = (OptimizedVirtualCall) obj; if (bytecodeInstruction == null) { if (other.bytecodeInstruction != null) { return false; } } else if (!bytecodeInstruction.equals(other.bytecodeInstruction)) { return false; } if (calleeMember == null) { if (other.calleeMember != null) { return false; } } else if (!calleeMember.equals(other.calleeMember)) { return false; } if (callerMember == null) { if (other.callerMember != null) { return false; } } else if (!callerMember.equals(other.callerMember)) { return false; } if (callsite == null) { if (other.callsite != null) { return false; } } else if (!callsite.equals(other.callsite)) { return false; } return true; } @Override public String toString() { return "OptimizedVirtualCall [callerMember=" + callerMember + ", calleeMember=" + calleeMember + ", callsite=" + callsite + ", bytecodeInstruction=" + bytecodeInstruction + "]"; } }