/*
* 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.report;
import org.adoptopenjdk.jitwatch.model.IMetaMember;
public class Report
{
private final IMetaMember caller;
private final int compilationIndex;
private final int bci;
private final String text;
private final ReportType type;
private final int score;
private Object metaData;
public Report(IMetaMember caller, int compilationIndex, int bci, String text, ReportType type, int score)
{
this(caller, compilationIndex, bci, text, type, score, null);
}
public Report(IMetaMember caller, int compilationIndex, int bci, String text, ReportType type, int score,
Object metaData)
{
this.caller = caller;
this.compilationIndex = compilationIndex;
this.bci = bci;
this.text = text;
this.score = score;
this.type = type;
this.metaData = metaData;
}
public IMetaMember getCaller()
{
return caller;
}
public Object getMetaData()
{
return metaData;
}
public int getCompilationIndex()
{
return compilationIndex;
}
public int getBytecodeOffset()
{
return bci;
}
public String getText()
{
return text;
}
public ReportType getType()
{
return type;
}
public int getScore()
{
return score;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + bci;
result = prime * result + ((caller == null) ? 0 : caller.hashCode());
result = prime * result + compilationIndex;
result = prime * result + ((metaData == null) ? 0 : metaData.hashCode());
result = prime * result + score;
result = prime * result + ((text == null) ? 0 : text.hashCode());
result = prime * result + ((type == null) ? 0 : type.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;
Report other = (Report) obj;
if (bci != other.bci)
return false;
if (caller == null)
{
if (other.caller != null)
return false;
}
else if (!caller.equals(other.caller))
return false;
if (compilationIndex != other.compilationIndex)
return false;
if (metaData == null)
{
if (other.metaData != null)
return false;
}
else if (!metaData.equals(other.metaData))
return false;
if (score != other.score)
return false;
if (text == null)
{
if (other.text != null)
return false;
}
else if (!text.equals(other.text))
return false;
if (type != other.type)
return false;
return true;
}
@Override
public String toString()
{
return "Report [caller=" + caller + ", compilationIndex=" + compilationIndex + ", bytecodeOffset=" + bci
+ ", text=" + text + ", type=" + type + ", score=" + score + ", metaData=" + metaData + "]";
}
}