Ignore:
Timestamp:
2011-05-29T19:45:59+02:00 (13 years ago)
Author:
bastiK
Message:

extract common functionality of OsmPrimitive & PrimitiveData to an interface

File:
1 edited

Legend:

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

    r4074 r4098  
    4040 * @author imi
    4141 */
    42 abstract public class OsmPrimitive implements Comparable<OsmPrimitive>, Tagged, PrimitiveId {
     42abstract public class OsmPrimitive implements Comparable<OsmPrimitive>, IPrimitive {
    4343
    4444    private static final AtomicLong idCounter = new AtomicLong(0);
     
    188188     */
    189189    public static final Predicate<OsmPrimitive> isUsablePredicate = new Predicate<OsmPrimitive>() {
    190         public boolean evaluate(OsmPrimitive primitive) {
     190        @Override public boolean evaluate(OsmPrimitive primitive) {
    191191            return primitive.isUsable();
    192192        }
     
    194194
    195195    public static final Predicate<OsmPrimitive> isSelectablePredicate = new Predicate<OsmPrimitive>() {
    196         public boolean evaluate(OsmPrimitive primitive) {
     196        @Override public boolean evaluate(OsmPrimitive primitive) {
    197197            return primitive.isSelectable();
    198198        }
     
    200200
    201201    public static final Predicate<OsmPrimitive> nonDeletedPredicate = new Predicate<OsmPrimitive>() {
    202         public boolean evaluate(OsmPrimitive primitive) {
     202        @Override public boolean evaluate(OsmPrimitive primitive) {
    203203            return !primitive.isDeleted();
    204204        }
     
    206206
    207207    public static final Predicate<OsmPrimitive> nonDeletedCompletePredicate = new Predicate<OsmPrimitive>() {
    208         public boolean evaluate(OsmPrimitive primitive) {
     208        @Override public boolean evaluate(OsmPrimitive primitive) {
    209209            return !primitive.isDeleted() && !primitive.isIncomplete();
    210210        }
     
    212212
    213213    public static final Predicate<OsmPrimitive> nonDeletedPhysicalPredicate = new Predicate<OsmPrimitive>() {
    214         public boolean evaluate(OsmPrimitive primitive) {
     214        @Override public boolean evaluate(OsmPrimitive primitive) {
    215215            return !primitive.isDeleted() && !primitive.isIncomplete() && !(primitive instanceof Relation);
    216216        }
     
    218218
    219219    public static final Predicate<OsmPrimitive> modifiedPredicate = new Predicate<OsmPrimitive>() {
    220         public boolean evaluate(OsmPrimitive primitive) {
     220        @Override public boolean evaluate(OsmPrimitive primitive) {
    221221            return primitive.isModified();
    222222        }
     
    224224
    225225    public static final Predicate<OsmPrimitive> nodePredicate = new Predicate<OsmPrimitive>() {
    226         public boolean evaluate(OsmPrimitive primitive) {
     226        @Override public boolean evaluate(OsmPrimitive primitive) {
    227227            return primitive.getClass() == Node.class;
    228228        }
     
    230230
    231231    public static final Predicate<OsmPrimitive> wayPredicate = new Predicate<OsmPrimitive>() {
    232         public boolean evaluate(OsmPrimitive primitive) {
     232        @Override public boolean evaluate(OsmPrimitive primitive) {
    233233            return primitive.getClass() == Way.class;
    234234        }
     
    236236
    237237    public static final Predicate<OsmPrimitive> relationPredicate = new Predicate<OsmPrimitive>() {
    238         public boolean evaluate(OsmPrimitive primitive) {
     238        @Override public boolean evaluate(OsmPrimitive primitive) {
    239239            return primitive.getClass() == Relation.class;
    240240        }
     
    242242
    243243    public static final Predicate<OsmPrimitive> allPredicate = new Predicate<OsmPrimitive>() {
    244         public boolean evaluate(OsmPrimitive primitive) {
     244        @Override public boolean evaluate(OsmPrimitive primitive) {
    245245            return true;
    246246        }
     
    397397     * @see #setVersion(int)
    398398     */
    399     public long getVersion() {
     399    @Override
     400    public int getVersion() {
    400401        return version;
    401402    }
     
    406407     * @return the id of this primitive.
    407408     */
     409    @Override
    408410    public long getId() {
    409411        long id = this.id;
     
    415417     * @return Osm id if primitive already exists on the server. Unique negative value if primitive is new
    416418     */
     419    @Override
    417420    public long getUniqueId() {
    418421        return id;
     
    423426     * @return True if primitive is new (not yet uploaded the server, id <= 0)
    424427     */
     428    @Override
    425429    public boolean isNew() {
    426430        return id <= 0;
     
    449453     * @throws DataIntegrityProblemException If id is changed and primitive was already added to the dataset
    450454     */
     455    @Override
    451456    public void setOsmId(long id, int version) {
    452457        boolean locked = writeLock();
     
    496501     * @return the user who has last touched this object. May be null.
    497502     */
     503    @Override
    498504    public User getUser() {
    499505        return user;
     
    505511     * @param user the user
    506512     */
     513    @Override
    507514    public void setUser(User user) {
    508515        boolean locked = writeLock();
     
    521528     * @return the id of the changeset this primitive was last uploaded to.
    522529     */
     530    @Override
    523531    public int getChangesetId() {
    524532        return changesetId;
     
    533541     * @throws IllegalArgumentException thrown if id < 0
    534542     */
     543    @Override
    535544    public void setChangesetId(int changesetId) throws IllegalStateException, IllegalArgumentException {
    536545        boolean locked = writeLock();
     
    566575    }
    567576
     577    @Override
    568578    public void setTimestamp(Date timestamp) {
    569579        boolean locked = writeLock();
     
    581591     *
    582592     */
     593    @Override
    583594    public Date getTimestamp() {
    584595        return new Date(timestamp * 1000l);
    585596    }
    586597
     598    @Override
    587599    public boolean isTimestampEmpty() {
    588600        return timestamp == 0;
     
    674686     * @param modified true, if this primitive is to be modified
    675687     */
     688    @Override
    676689    public void setModified(boolean modified) {
    677690        updateFlags(FLAG_MODIFIED, modified);
     
    688701     * the server
    689702     */
     703    @Override
    690704    public boolean isModified() {
    691705        return (flags & FLAG_MODIFIED) != 0;
     
    698712     * @see #setDeleted(boolean)
    699713     */
     714    @Override
    700715    public boolean isDeleted() {
    701716        return (flags & FLAG_DELETED) != 0;
     
    737752     * @see #setVisible(boolean)
    738753     */
     754    @Override
    739755    public boolean isVisible() {
    740756        return (flags & FLAG_VISIBLE) != 0;
     
    749765     * id==0
    750766     */
     767    @Override
    751768    public void setVisible(boolean visible) throws IllegalStateException{
    752769        boolean locked = writeLock();
     
    767784     * @param deleted  true, if this primitive is deleted; false, otherwise
    768785     */
     786    @Override
    769787    public void setDeleted(boolean deleted) {
    770788        boolean locked = writeLock();
     
    805823    }
    806824
     825    @Override
    807826    public boolean isIncomplete() {
    808827        return (flags & FLAG_INCOMPLETE) != 0;
     
    9951014     * back to the primitive, use setKeys() to modify the keys
    9961015     */
     1016    @Override
    9971017    public Map<String, String> getKeys() {
    9981018        Map<String, String> result = new HashMap<String, String>();
     
    10121032     * @param keys the key/value pairs to set. If null, removes all existing key/value pairs.
    10131033     */
     1034    @Override
    10141035    public void setKeys(Map<String, String> keys) {
    10151036        boolean locked = writeLock();
     
    10431064     * @see #remove(String)
    10441065     */
     1066    @Override
    10451067    public final void put(String key, String value) {
    10461068        boolean locked = writeLock();
     
    10811103     * @param key  the key to be removed. Ignored, if key is null.
    10821104     */
     1105    @Override
    10831106    public final void remove(String key) {
    10841107        boolean locked = writeLock();
     
    11131136     * @since 1843
    11141137     */
     1138    @Override
    11151139    public final void removeAll() {
    11161140        boolean locked = writeLock();
     
    11331157     * @return the value for key <code>key</code>.
    11341158     */
     1159    @Override
    11351160    public final String get(String key) {
    11361161        String[] keys = this.keys;
     
    11451170    }
    11461171
     1172    @Override
    11471173    public final Collection<String> keySet() {
    11481174        String[] keys = this.keys;
     
    11621188     *   otherwise
    11631189     */
     1190    @Override
    11641191    public final boolean hasKeys() {
    11651192        return keys != null;
Note: See TracChangeset for help on using the changeset viewer.