package org.datadog.jmxfetch.reporter;
import java.util.Arrays;
import com.google.common.base.Joiner;
public class ReporterFactory {
public static Reporter getReporter(String type) {
if (type == null || type.length() <= 0) {
throw new IllegalArgumentException("Null or empty reporter type");
}
if ("console".equals(type)) {
return new ConsoleReporter();
} else if (type.startsWith("statsd:")) {
String[] typeElements = type.split(":");
String host = "localhost";
Integer port = Integer.valueOf(typeElements[typeElements.length - 1]);
if (typeElements.length > 2) {
host = Joiner.on(":").join(Arrays.copyOfRange(typeElements, 1, typeElements.length - 1));
}
return new StatsdReporter(host, port);
} else {
throw new IllegalArgumentException("Invalid reporter type: " + type);
}
}
private ReporterFactory() {}
}