/* * Copyright 2016 Naver Corp. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.navercorp.pinpoint.web.vo.chart; /** * @author HyunGil Jeong */ public class Point<X extends Number, Y extends Number> { private final X xVal; private final Y minYVal; private final Y maxYVal; private final Double avgYVal; private final Y sumYVal; public Point(X xVal, Y yVal) { this.xVal = xVal; this.minYVal = yVal; this.maxYVal = yVal; if (yVal == null) { this.avgYVal = null; } else { this.avgYVal = yVal.doubleValue(); } this.sumYVal = yVal; } public Point(X xVal, Y minYVal, Y maxYVal, Double avgYVal, Y sumYVal) { this.xVal = xVal; this.minYVal = minYVal; this.maxYVal = maxYVal; this.avgYVal = avgYVal; this.sumYVal = sumYVal; } public X getxVal() { return xVal; } public Y getMinYVal() { return minYVal; } public Y getMaxYVal() { return maxYVal; } public Double getAvgYVal() { return avgYVal; } public Y getSumYVal() { return sumYVal; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Point<?, ?> point = (Point<?, ?>) o; if (xVal != null ? !xVal.equals(point.xVal) : point.xVal != null) return false; if (minYVal != null ? !minYVal.equals(point.minYVal) : point.minYVal != null) return false; if (maxYVal != null ? !maxYVal.equals(point.maxYVal) : point.maxYVal != null) return false; if (avgYVal != null ? !avgYVal.equals(point.avgYVal) : point.avgYVal != null) return false; return sumYVal != null ? sumYVal.equals(point.sumYVal) : point.sumYVal == null; } @Override public int hashCode() { int result = xVal != null ? xVal.hashCode() : 0; result = 31 * result + (minYVal != null ? minYVal.hashCode() : 0); result = 31 * result + (maxYVal != null ? maxYVal.hashCode() : 0); result = 31 * result + (avgYVal != null ? avgYVal.hashCode() : 0); result = 31 * result + (sumYVal != null ? sumYVal.hashCode() : 0); return result; } @Override public String toString() { final StringBuilder sb = new StringBuilder("Point{"); sb.append("xVal=").append(xVal); sb.append(", minYVal=").append(minYVal); sb.append(", maxYVal=").append(maxYVal); sb.append(", avgYVal=").append(avgYVal); sb.append(", sumYVal=").append(sumYVal); sb.append('}'); return sb.toString(); } }