Ignore:
Timestamp:
2010-02-13T17:05:37+01:00 (14 years ago)
Author:
jttt
Message:

Fix #4519 JOSM doesn't show nor find token (negative) IDs

File:
1 edited

Legend:

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

    r2962 r2973  
    122122    private static class Id extends Match {
    123123        private long id;
    124         public Id(long id) {this.id = id;}
    125         @Override public boolean match(OsmPrimitive osm) {
    126             return osm.getId() == id;
     124        public Id(long id) {
     125            this.id = id;
     126        }
     127        @Override public boolean match(OsmPrimitive osm) {
     128            return osm.getUniqueId() == id;
    127129        }
    128130        @Override public String toString() {return "id="+id;}
     
    663665                return new ExactKeyValue(regexSearch, key, tokenizer.readText());
    664666            else if (tokenizer.readIfEqual(Token.COLON))
    665                 return parseKV(key, tokenizer.readText());
     667                if ("id".equals(key))
     668                    return new Id(tokenizer.readNumber(tr("Primitive id expected")));
     669                else
     670                    return parseKV(key, tokenizer.readText());
    666671            else if (tokenizer.readIfEqual(Token.QUESTION_MARK))
    667672                return new BooleanMatch(key, false);
     
    725730            }
    726731
    727         } else if (key.equals("id")) {
    728             try {
    729                 return new Id(Long.parseLong(value));
    730             } catch (NumberFormatException x) {
    731                 throw new ParseError(tr("Incorrect value of id operator: {0}. Number is expected.", value));
    732             }
    733732        } else if (key.equals("changeset")) {
    734733            try {
Note: See TracChangeset for help on using the changeset viewer.