Changeset 17747 in josm for trunk/src


Ignore:
Timestamp:
2021-04-11T21:56:45+02:00 (4 years ago)
Author:
simon04
Message:

Extract SearchCompiler.TimestampRange.create

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java

    r17746 r17747  
    5050import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    5151import org.openstreetmap.josm.tools.AlphanumComparator;
     52import org.openstreetmap.josm.tools.CheckParameterUtil;
    5253import org.openstreetmap.josm.tools.Geometry;
    5354import org.openstreetmap.josm.tools.Logging;
     
    195196                            return new KeyValue(keyword, rangeS.trim(), regexSearch, caseSensitive);
    196197                        } else if (rangeA.length == 2) {
    197                             String rangeA1 = rangeA[0].trim();
    198                             String rangeA2 = rangeA[1].trim();
    199                             final long minDate;
    200                             final long maxDate;
    201                             try {
    202                                 // if min timestamp is empty: use lowest possible date
    203                                 minDate = DateUtils.fromString(rangeA1.isEmpty() ? "1980" : rangeA1).getTime();
    204                             } catch (UncheckedParseException | DateTimeException ex) {
    205                                 throw new SearchParseError(tr("Cannot parse timestamp ''{0}''", rangeA1), ex);
    206                             }
    207                             try {
    208                                 // if max timestamp is empty: use "now"
    209                                 maxDate = rangeA2.isEmpty() ? System.currentTimeMillis() : DateUtils.fromString(rangeA2).getTime();
    210                             } catch (UncheckedParseException | DateTimeException ex) {
    211                                 throw new SearchParseError(tr("Cannot parse timestamp ''{0}''", rangeA2), ex);
    212                             }
    213                             return new TimestampRange(minDate, maxDate);
     198                            return TimestampRange.create(rangeA);
    214199                        } else {
    215200                            throw new SearchParseError("<html>" + tr("Expecting {0} after {1}", "<i>min</i>/<i>max</i>", "<i>timestamp</i>")
     
    15001485        }
    15011486
     1487        private static TimestampRange create(String[] range) throws SearchParseError {
     1488            CheckParameterUtil.ensureThat(range.length == 2, "length 2");
     1489            String rangeA1 = range[0].trim();
     1490            String rangeA2 = range[1].trim();
     1491            final long minDate;
     1492            final long maxDate;
     1493            try {
     1494                // if min timestamp is empty: use lowest possible date
     1495                minDate = DateUtils.fromString(rangeA1.isEmpty() ? "1980" : rangeA1).getTime();
     1496            } catch (UncheckedParseException | DateTimeException ex) {
     1497                throw new SearchParseError(tr("Cannot parse timestamp ''{0}''", rangeA1), ex);
     1498            }
     1499            try {
     1500                // if max timestamp is empty: use "now"
     1501                maxDate = rangeA2.isEmpty() ? System.currentTimeMillis() : DateUtils.fromString(rangeA2).getTime();
     1502            } catch (UncheckedParseException | DateTimeException ex) {
     1503                throw new SearchParseError(tr("Cannot parse timestamp ''{0}''", rangeA2), ex);
     1504            }
     1505            return new TimestampRange(minDate, maxDate);
     1506        }
     1507
    15021508        @Override
    15031509        protected Long getNumber(OsmPrimitive osm) {
Note: See TracChangeset for help on using the changeset viewer.