001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm;
003
004/**
005* interface to represent identification and type of the datatypes primitives.
006*
007* @since 2399
008*/
009public interface PrimitiveId {
010
011    /**
012     * Gets a unique id representing this object (the OSM server id for OSM objects)
013     *
014     * @return the id number
015     */
016    long getUniqueId();
017
018    /**
019     * Gets the type of object represented by this object.
020     *
021     * @return the object type
022     * @see Node
023     * @see Way
024     * @see Relation
025     */
026    OsmPrimitiveType getType();
027
028    /**
029     * Replies true if this id represents a new primitive.
030     *
031     * @return true if this id represents a new primitive.
032     */
033    boolean isNew();
034
035}