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 }