package org.infinispan.rhq; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.rhq.core.domain.measurement.MeasurementDataNumeric; import org.rhq.core.domain.measurement.MeasurementScheduleRequest; /** * RHQ utility methods * * @author Galder ZamarreƱo * @since 5.1 */ public class RhqUtil { private static final Log log = LogFactory.getLog(RhqUtil.class); public static MeasurementDataNumeric constructNumericMeasure( Class<?> attrType, Object o, MeasurementScheduleRequest req) { if (log.isTraceEnabled()) log.trace("Metric ("+req.getName() +") is measurement with value " + o); return new MeasurementDataNumeric(req, constructDouble(attrType, o)); } public static Double constructDouble(Class<?> type, Object o) { if (type.equals(Long.class) || type.equals(long.class)) return Double.valueOf((Long) o); else if (type.equals(Double.class) || type.equals(double.class)) return (Double) o; else if (type.equals(Integer.class) || type.equals(int.class)) return Double.valueOf((Integer) o); else if (type.equals(String.class)) return Double.valueOf((String) o); throw new IllegalStateException(String.format("Expected a value that can be converted into a double: type=%s, value=%s", type, o)); } }