/*
* Copyright 2015-2016 the original author or authors.
*
* 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 org.glowroot.common.model;
import javax.annotation.Nullable;
import com.google.common.collect.Ordering;
import com.google.common.primitives.Doubles;
public class MutableQuery {
static final Ordering<MutableQuery> byTotalDurationDesc = new Ordering<MutableQuery>() {
@Override
public int compare(MutableQuery left, MutableQuery right) {
return Doubles.compare(right.getTotalDurationNanos(), left.getTotalDurationNanos());
}
};
private final String truncatedText;
private final @Nullable String fullTextSha1;
private double totalDurationNanos;
private long executionCount;
private boolean hasTotalRows;
private long totalRows;
MutableQuery(String truncatedText, @Nullable String fullTextSha1) {
this.truncatedText = truncatedText;
this.fullTextSha1 = fullTextSha1;
}
public String getTruncatedText() {
return truncatedText;
}
public @Nullable String getFullTextSha1() {
return fullTextSha1;
}
public double getTotalDurationNanos() {
return totalDurationNanos;
}
public long getExecutionCount() {
return executionCount;
}
public boolean hasTotalRows() {
return hasTotalRows;
}
public long getTotalRows() {
return totalRows;
}
void addToTotalDurationNanos(double totalDurationNanos) {
this.totalDurationNanos += totalDurationNanos;
}
void addToExecutionCount(long executionCount) {
this.executionCount += executionCount;
}
void addToTotalRows(boolean hasTotalRows, long totalRows) {
if (hasTotalRows) {
this.hasTotalRows = true;
this.totalRows += totalRows;
}
}
}