001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.osm; 003 004import java.util.Date; 005 006import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor; 007 008/** 009 * IPrimitive captures the common functions of {@link OsmPrimitive} and {@link PrimitiveData}. 010 */ 011public interface IPrimitive extends Tagged, PrimitiveId { 012 013 boolean isModified(); 014 015 void setModified(boolean modified); 016 017 boolean isVisible(); 018 019 void setVisible(boolean visible); 020 021 boolean isDeleted(); 022 023 void setDeleted(boolean deleted); 024 025 boolean isIncomplete(); 026 027 boolean isNewOrUndeleted(); 028 029 long getId(); 030 031 PrimitiveId getPrimitiveId(); 032 033 int getVersion(); 034 035 void setOsmId(long id, int version); 036 037 User getUser(); 038 039 void setUser(User user); 040 041 Date getTimestamp(); 042 043 int getRawTimestamp(); 044 045 void setTimestamp(Date timestamp); 046 047 void setRawTimestamp(int timestamp); 048 049 boolean isTimestampEmpty(); 050 051 int getChangesetId(); 052 053 void setChangesetId(int changesetId); 054 055 void accept(PrimitiveVisitor visitor); 056 057 String getName(); 058 059 String getLocalName(); 060}