org.opennms.newts.api.Sample Maven / Gradle / Ivy
/*
* Copyright 2014, The OpenNMS Group
*
* 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.opennms.newts.api;
import static com.google.common.base.Preconditions.checkNotNull;
import java.io.Serializable;
import java.util.Map;
import com.google.common.base.Objects;
public class Sample implements Element>, Serializable {
private static final long serialVersionUID = 3819211879010998577L;
private final Timestamp m_timestamp;
private final Context m_context;
private final Resource m_resource;
private final String m_name;
private final MetricType m_type;
private final ValueType> m_value;
private final Map m_attributes;
public Sample(Timestamp timestamp, Resource resource, String name, MetricType type, ValueType> value) {
this(timestamp, Context.DEFAULT_CONTEXT, resource, name, type, value, null);
}
public Sample(Timestamp timestamp, Resource resource, String name, MetricType type, ValueType> value, Map attributes) {
this(timestamp, Context.DEFAULT_CONTEXT, resource, name, type, value, attributes);
}
public Sample(Timestamp timestamp, Context context, Resource resource, String name, MetricType type, ValueType> value) {
this(timestamp, context, resource, name, type, value, null);
}
public Sample(Timestamp timestamp, Context context, Resource resource, String name, MetricType type, ValueType> value, Map attributes) {
m_timestamp = checkNotNull(timestamp, "timestamp");
m_context = checkNotNull(context, "context argument");
m_resource = checkNotNull(resource, "resource");
m_name = checkNotNull(name, "name");
m_type = checkNotNull(type, "type");
m_value = value;
m_attributes = attributes;
}
public Timestamp getTimestamp() {
return m_timestamp;
}
public Context getContext() {
return m_context;
}
public Resource getResource() {
return m_resource;
}
public String getName() {
return m_name;
}
public MetricType getType() {
return m_type;
}
public ValueType> getValue() {
return m_value;
}
public Map getAttributes() {
return m_attributes;
}
@Override
public String toString() {
return String.format(
"%s[timestamp=%s, context=%s, resource=%s, name=%s, type=%s, value=%s]",
getClass().getSimpleName(),
getTimestamp(),
getContext(),
getResource(),
getName(),
getType(),
getValue());
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
final Sample other = (Sample) obj;
return Objects.equal(this.m_timestamp, other.m_timestamp)
&& Objects.equal(this.m_context, other.m_context)
&& Objects.equal(this.m_resource, other.m_resource)
&& Objects.equal(this.m_name, other.m_name)
&& Objects.equal(this.m_type, other.m_type)
&& Objects.equal(this.m_value, other.m_value)
&& Objects.equal(this.m_attributes, other.m_attributes);
}
@Override
public int hashCode() {
return Objects.hashCode(
this.m_timestamp, this.m_context, this.m_resource, this.m_name, m_type, this.m_value, this.m_attributes);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy