void steady_state_reached(double trans_time) {
    if (data == null) {
      return;
    }
    Set keyset = data.keySet();
    Collection valueset = data.values();
    Iterator keys = keyset.iterator();
    Iterator values = valueset.iterator();
    while (keys.hasNext()) {
      String measure = (String)keys.next();
      int type = get_type(measure);
      if (type == RATE_BASED) {
        Long value = (Long)values.next();
        value = new Long(0L);
        data.put(measure, value);
      } else if (type == STATE_BASED) {
        Object[] value = (Object[])values.next();
        if (value.length == 2) {
          value = new Object[] {new double[] {0, 0, trans_time, trans_time, ((double[])value[0])[4], Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY}, new double[get_levels(measure).length]};
        } else {
          value = new Object[] {new double[] {0, 0, trans_time, trans_time, ((double[])value[0])[4], Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY}};
        }
        data.put(measure, value);
      } else {
        Object[] value = (Object[])values.next();
        if (value.length == 2) {
          value = new Object[] {new double[] {0, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0}, new double[get_levels(measure).length]};
        } else {
          value = new Object[] {new double[] {0, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, 0}};
        }
        data.put(measure, value);
      }
    }
    this.trans_time = trans_time;
  }