private void printStat(LiveStatistics ls) {
    long ms = ls.getTimeperiod() * 15000;
    DateTime time = new DateTime(ms);

    StringBuilder sb = new StringBuilder();
    sb.append(time.getDayOfMonth())
        .append(".")
        .append(time.getMonthOfYear())
        .append(".")
        .append(time.getYear());
    sb.append(" ")
        .append(time.getHourOfDay())
        .append(":")
        .append(time.getMinuteOfHour())
        .append(":")
        .append(time.getSecondOfMinute());

    System.out.println(
        ls.getTimeperiod()
            + ";"
            + ls.getAccountName()
            + "; date: "
            + sb.toString()
            + " value: "
            + ls.getValue()
            + " unitType: "
            + ls.getUnitType()
            + " valueType: "
            + ls.getValueType());
  }
  @Override
  public void storeIncomingStatistics(List<LiveStatistics> liveStatisticsList) {
    for (LiveStatistics ls : liveStatisticsList) {
      long hoursSince1970 = ls.getTimeperiod() / 240;
      int fifteenSecondPeriodsSinceStartOfHour =
          LiveStatisticsUtil.getFifteensecondTimeperiodsSinceStartOfHour(ls.getTimeperiod() * 15);
      Double calculatedValue =
          LiveStatisticsUtil.calculateValueBasedOnUnitType(
              ls.getValue(), UnitType.fromValue(ls.getUnitType()));

      BasicMetricHour mhToStore =
          metricHoursToStoreHash.get(
              ls.getAccountName() + ";" + ls.getGuiPath() + ";" + hoursSince1970);
      boolean wasInStoreHash = mhToStore != null;

      if (mhToStore == null) {
        // Not in store-hash chech in metricHourCache
        mhToStore =
            metricHourCache.getIfPresent(
                ls.getAccountName() + ";" + ls.getGuiPath() + ";" + hoursSince1970);
      }

      if (mhToStore == null) {
        // Not in metricHourCache, fetch from Riak
        mhToStore = getMetricHour(ls.getAccountName(), ls.getGuiPath(), hoursSince1970);
      }

      if (mhToStore == null) {
        // Not in Riak, create
        mhToStore =
            new BasicMetricHour(
                ls.getGuiPath(),
                ls.getAccountName(),
                hoursSince1970,
                ls.getValueType(),
                ls.getUnitType());
      }

      mhToStore.getMetrics()[fifteenSecondPeriodsSinceStartOfHour] =
          LiveStatisticsUtil.calculateValueBasedOnValueType(
              ls, calculatedValue, ValueType.fromValue(ls.getValueType()));

      if (!wasInStoreHash) {
        metricHoursToStoreHash.put(
            ls.getAccountName() + ";" + ls.getGuiPath() + ";" + hoursSince1970, mhToStore);
      }
    }

    persistRecentMetricHours();
  }