docs: @Override
    protected Deferred<Object> importDataPoint(final TSDB tsdb, 
        final String[] words) {
      words[TelnetIndex.COMMAND.ordinal()] = null; // Ditch the "rollup" string.
      if (words.length < TelnetIndex.TAGS.ordinal() + 1) {
        throw new IllegalArgumentException("not enough arguments"
                + " (need least 7, got " + (words.length - 1) + ')');
      }
      
      final String interval_agg = words[TelnetIndex.INTERVAL_AGG.ordinal()];
      if (interval_agg.isEmpty()) {
        throw new IllegalArgumentException("Missing interval or aggregator");
      }
      
      String interval = null;
      String temporal_agg = null;
      String spatial_agg = null;
      // if the interval_agg has a - in it, then it's an interval. If there's a :
      // then it is both. If no dash or colon then it's just a spatial agg.
      final String[] interval_parts = interval_agg.split(":");
      final int dash = interval_parts[0].indexOf("-");
      if (dash > -1) {
        interval = interval_parts[0].substring(0,dash);
        temporal_agg = interval_parts[0].substring(dash + 1);
        
      } else if (interval_parts.length == 1) {
        spatial_agg = interval_parts[0];
      } 
      if (interval_parts.length > 1) {
        spatial_agg = interval_parts[1];
      }
  
      final String metric = words[TelnetIndex.METRIC.ordinal()];
      if (metric.length() <= 0) {
        throw new IllegalArgumentException("empty metric name");
      }
  
      final long timestamp;
      if (words[TelnetIndex.TIMESTAMP.ordinal()].contains(".")) {
        timestamp = Tags.parseLong(words[TelnetIndex.TIMESTAMP.ordinal()]
            .replace(".", ""));
      } else {
        timestamp = Tags.parseLong(words[TelnetIndex.TIMESTAMP.ordinal()]);
      }
      if (timestamp <= 0) {
        throw new IllegalArgumentException("invalid timestamp: " + timestamp);
      }
      
      final String value = words[TelnetIndex.VALUE.ordinal()];
      if (value.length() <= 0) {
        throw new IllegalArgumentException("empty value");
      }
      
      final HashMap<String, String> tags = new HashMap<String, String>();
      for (int i = TelnetIndex.TAGS.ordinal(); i < words.length; i++) {
        if (!words[i].isEmpty()) {
          Tags.parse(tags, words[i]);
        }
      }
      
      if (spatial_agg != null && temporal_agg == null) {
        temporal_agg = spatial_agg;
      }
      
      if (Tags.looksLikeInteger(value)) {
        return tsdb.addAggregatePoint(metric, timestamp, Tags.parseLong(value),
            tags, spatial_agg != null ? true : false, interval, temporal_agg,
                spatial_agg);
      } else if (Tags.fitsInFloat(value)) {  // floating point value
        return tsdb.addAggregatePoint(metric, timestamp, Float.parseFloat(value),
            tags, spatial_agg != null ? true : false, interval, temporal_agg,
                spatial_agg);
      } else {
        return tsdb.addAggregatePoint(metric, timestamp, Double.parseDouble(value),
            tags, spatial_agg != null ? true : false, interval, temporal_agg,
                spatial_agg);
      }
    }