All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.librato.metrics.reporter.Signal Maven / Gradle / Ivy

Go to download

The LibratoReporter class runs in the background, publishing metrics to the Librato Metrics API at the specified interval.

The newest version!
package com.librato.metrics.reporter;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.librato.metrics.client.Tag;

import java.util.Collections;
import java.util.List;

public class Signal {
    public String name;
    public String source;
    public List tags = Collections.emptyList();
    public boolean overrideTags;

    public static Signal decode(String data) {
        if (data == null || data.length() < 2 || data.charAt(0) != '{') {
            return new Signal(data);
        }
        return Json.decode(data, Signal.class);
    }

    public Signal(String name) {
        this.name = name;
    }

    public Signal(String name, String source) {
        this.name = name;
        this.source = source;
    }

    @JsonCreator
    public Signal(@JsonProperty("name") String name,
                  @JsonProperty("source") String source,
                  @JsonProperty("tags") List tags,
                  @JsonProperty("overrideTags") boolean overrideTags) {
        this.name = name;
        this.source = source;
        if (tags != null) {
            this.tags = tags;
        }
        this.overrideTags = overrideTags;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Signal signal = (Signal) o;

        if (overrideTags != signal.overrideTags) return false;
        if (name != null ? !name.equals(signal.name) : signal.name != null)
            return false;
        if (source != null ? !source.equals(signal.source) : signal.source != null)
            return false;
        return tags != null ? tags.equals(signal.tags) : signal.tags == null;
    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + (source != null ? source.hashCode() : 0);
        result = 31 * result + (tags != null ? tags.hashCode() : 0);
        result = 31 * result + (overrideTags ? 1 : 0);
        return result;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Signal{");
        sb.append("name='").append(name).append('\'');
        sb.append(", source='").append(source).append('\'');
        sb.append(", tags=").append(tags);
        sb.append(", overrideTags=").append(overrideTags);
        sb.append('}');
        return sb.toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy