001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.osm;
003
004 import java.util.Date;
005
006 import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor;
007
008 /**
009 * IPrimitive captures the common functions of OsmPrimitive and PrimitiveData.
010 */
011 public interface IPrimitive extends Tagged, PrimitiveId {
012
013 boolean isModified();
014 void setModified(boolean modified);
015 boolean isVisible();
016 void setVisible(boolean visible);
017 boolean isDeleted();
018 void setDeleted(boolean deleted);
019 boolean isIncomplete();
020 boolean isNewOrUndeleted();
021 long getId();
022 PrimitiveId getPrimitiveId();
023 int getVersion();
024 void setOsmId(long id, int version);
025 User getUser();
026 void setUser(User user);
027 Date getTimestamp();
028 void setTimestamp(Date timestamp);
029 boolean isTimestampEmpty();
030 int getChangesetId();
031 void setChangesetId(int changesetId);
032
033 void visit(PrimitiveVisitor visitor);
034 String getName();
035 String getLocalName();
036
037 }