Ignore:
Timestamp:
2009-07-26T17:03:00+02:00 (17 years ago)
Author:
Gubaer
Message:

improved deleting relations

Location:
trunk/src/org/openstreetmap/josm/data/osm
Files:
2 edited

Legend:

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

    r1814 r1856  
    33
    44import java.awt.geom.Area;
     5import java.util.ArrayList;
    56import java.util.Arrays;
    67import java.util.Collection;
     
    422423    }
    423424
    424 
     425    /**
     426     * Replies a list of parent relations which refer to the relation
     427     * <code>child</code>. Replies an empty list if child is null.
     428     *
     429     * @param child the child relation
     430     * @return a list of parent relations which refer to the relation
     431     * <code>child</code>
     432     */
     433    public List<Relation> getParentRelations(Relation child) {
     434        ArrayList<Relation> parents = new ArrayList<Relation>();
     435        if (child == null)
     436            return parents;
     437        for (Relation parent : relations) {
     438            if (parent == child) {
     439                continue;
     440            }
     441            for (RelationMember member: parent.members) {
     442                if (member.refersTo(child)) {
     443                    parents.add(parent);
     444                    break;
     445                }
     446            }
     447        }
     448        return parents;
     449    }
    425450}
  • trunk/src/org/openstreetmap/josm/data/osm/RelationMember.java

    r1790 r1856  
    3636    }
    3737
     38    /**
     39     * Replies true, if this relation member refers to the primitive
     40     *
     41     * @param primitive  the primitive to check
     42     * @return true, if this relation member refers to the primitive
     43     */
     44    public boolean refersTo(OsmPrimitive primitive) {
     45        if (primitive == null) return false;
     46        if (member == null) return false;
     47        return member == primitive;
     48    }
     49
    3850    @Override
    3951    public int hashCode() {
Note: See TracChangeset for help on using the changeset viewer.