Ignore:
Timestamp:
2017-11-25T14:14:25+01:00 (6 years ago)
Author:
Don-vip
Message:

fix #13153 - Should not warn to upload/save "modified" layers with 0 objects

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/APIDataSet.java

    r13018 r13161  
    2626import org.openstreetmap.josm.data.osm.RelationMember;
    2727import org.openstreetmap.josm.data.osm.Way;
     28import org.openstreetmap.josm.tools.Logging;
    2829import org.openstreetmap.josm.tools.Utils;
    2930
     
    4041
    4142    /**
     43     * The type of operation we can perform with OSM API on a primitive.
     44     * @since 13161
     45     */
     46    public enum APIOperation {
     47        /** Add a new primitive */
     48        ADD,
     49        /** Update an existing primitive */
     50        UPDATE,
     51        /** Delete an existing primitive */
     52        DELETE;
     53
     54        /**
     55         * Determines the API operation to perform on a primitive.
     56         * @param osm OSM primitive
     57         * @return the API operation to perform on {@code osm}
     58         */
     59        public static APIOperation of(OsmPrimitive osm) {
     60            if (osm.isNewOrUndeleted() && !osm.isDeleted()) {
     61                return ADD;
     62            } else if (osm.isModified() && !osm.isDeleted()) {
     63                return UPDATE;
     64            } else if (osm.isDeleted() && !osm.isNew() && osm.isModified() && osm.isVisible()) {
     65                return DELETE;
     66            }
     67            return null;
     68        }
     69    }
     70
     71    /**
    4272     * creates a new empty data set
    4373     */
     
    6999
    70100        for (OsmPrimitive osm :primitives) {
    71             if (osm.isNewOrUndeleted() && !osm.isDeleted()) {
    72                 toAdd.add(osm);
    73             } else if (osm.isModified() && !osm.isDeleted()) {
    74                 toUpdate.add(osm);
    75             } else if (osm.isDeleted() && !osm.isNew() && osm.isModified() && osm.isVisible()) {
    76                 toDelete.add(osm);
     101            switch (APIOperation.of(osm)) {
     102                case ADD: toAdd.add(osm); break;
     103                case UPDATE: toUpdate.add(osm); break;
     104                case DELETE: toDelete.add(osm); break;
     105                default: Logging.trace("Ignored primitive {0}", osm);
    77106            }
    78107        }
Note: See TracChangeset for help on using the changeset viewer.