addObject method

Hora addObject(
  1. Map<String, dynamic> map
)

Adds duration specified by a map.

Supported keys:

  • years, months, weeks, days
  • hours, minutes, seconds
  • milliseconds, microseconds
  • quarters

Implementation

Hora addObject(Map<String, dynamic> map) {
  var result = this;

  // Process each key in order of magnitude
  final years = _getNum(map, [DateTimeKeys.year, DateTimeKeys.years]);
  if (years != null && years != 0) {
    result = result.add(years.toInt(), TemporalUnit.year);
  }

  final quarters =
      _getNum(map, [DateTimeKeys.quarter, DateTimeKeys.quarters]);
  if (quarters != null && quarters != 0) {
    result = result.add(quarters.toInt(), TemporalUnit.quarter);
  }

  final months = _getNum(map, [DateTimeKeys.month, DateTimeKeys.months]);
  if (months != null && months != 0) {
    result = result.add(months.toInt(), TemporalUnit.month);
  }

  final weeks = _getNum(map, [DateTimeKeys.week, DateTimeKeys.weeks]);
  if (weeks != null && weeks != 0) {
    result = result.add(weeks.toInt(), TemporalUnit.week);
  }

  final days =
      _getNum(map, [DateTimeKeys.day, DateTimeKeys.days, DateTimeKeys.date]);
  if (days != null && days != 0) {
    result = result.add(days.toInt(), TemporalUnit.day);
  }

  final hours = _getNum(map, [DateTimeKeys.hour, DateTimeKeys.hours]);
  if (hours != null && hours != 0) {
    result = result.add(hours.toInt(), TemporalUnit.hour);
  }

  final minutes = _getNum(map, [DateTimeKeys.minute, DateTimeKeys.minutes]);
  if (minutes != null && minutes != 0) {
    result = result.add(minutes.toInt(), TemporalUnit.minute);
  }

  final seconds = _getNum(map, [DateTimeKeys.second, DateTimeKeys.seconds]);
  if (seconds != null && seconds != 0) {
    result = result.add(seconds.toInt(), TemporalUnit.second);
  }

  final milliseconds =
      _getNum(map, [DateTimeKeys.millisecond, DateTimeKeys.milliseconds]);
  if (milliseconds != null && milliseconds != 0) {
    result = result.add(milliseconds.toInt(), TemporalUnit.millisecond);
  }

  final microseconds =
      _getNum(map, [DateTimeKeys.microsecond, DateTimeKeys.microseconds]);
  if (microseconds != null && microseconds != 0) {
    result = result.add(microseconds.toInt(), TemporalUnit.microsecond);
  }

  return result;
}