/* * SonarQube * Copyright (C) 2009-2017 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package org.sonar.db.measure; import com.google.common.base.MoreObjects; import java.nio.charset.StandardCharsets; import javax.annotation.CheckForNull; import javax.annotation.Nullable; public class MeasureDto { private static final int MAX_TEXT_VALUE_LENGTH = 4000; private Double value; private String textValue; private byte[] dataValue; private Double variation; private String alertStatus; private String alertText; private String componentUuid; private String analysisUuid; private int metricId; private Long developerId; @CheckForNull public Double getValue() { return value; } public MeasureDto setValue(@Nullable Double value) { this.value = value; return this; } public String getComponentUuid() { return componentUuid; } public MeasureDto setComponentUuid(String s) { this.componentUuid = s; return this; } @CheckForNull public String getData() { if (dataValue != null) { return new String(dataValue, StandardCharsets.UTF_8); } return textValue; } public MeasureDto setData(@Nullable String data) { if (data == null) { this.textValue = null; this.dataValue = null; } else if (data.length() > MAX_TEXT_VALUE_LENGTH) { this.textValue = null; this.dataValue = data.getBytes(StandardCharsets.UTF_8); } else { this.textValue = data; this.dataValue = null; } return this; } @CheckForNull public Double getVariation() { return variation; } public MeasureDto setVariation(@Nullable Double d) { variation = d; return this; } @CheckForNull public String getAlertStatus() { return alertStatus; } public MeasureDto setAlertStatus(@Nullable String alertStatus) { this.alertStatus = alertStatus; return this; } @CheckForNull public String getAlertText() { return alertText; } public MeasureDto setAlertText(@Nullable String alertText) { this.alertText = alertText; return this; } public int getMetricId() { return metricId; } public MeasureDto setMetricId(int metricId) { this.metricId = metricId; return this; } public String getAnalysisUuid() { return analysisUuid; } public MeasureDto setAnalysisUuid(String s) { this.analysisUuid = s; return this; } @CheckForNull public Long getDeveloperId() { return developerId; } public MeasureDto setDeveloperId(@Nullable Long developerId) { this.developerId = developerId; return this; } @Override public String toString() { return MoreObjects.toStringHelper(this) .add("value", value) .add("textValue", textValue) .add("dataValue", dataValue) .add("variation", variation) .add("alertStatus", alertStatus) .add("alertText", alertText) .add("componentUuid", componentUuid) .add("analysisUuid", analysisUuid) .add("metricId", metricId) .add("developerId", developerId) .toString(); } }