// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.czechaddress.addressdatabase; import static org.openstreetmap.josm.plugins.czechaddress.proposal.ProposalFactory.getStringFieldDiff; import java.util.List; import org.openstreetmap.josm.data.osm.OsmPrimitive; import org.openstreetmap.josm.plugins.czechaddress.NotNullList; import org.openstreetmap.josm.plugins.czechaddress.PrimUtils; import org.openstreetmap.josm.plugins.czechaddress.proposal.Proposal; /** * Street is a member of {@link ElementWithStreets} * * @author Radomír Černoch radomir.cernoch@gmail.com */ public class Street extends ElementWithHouses { public Street(String name) { super(name); } @Override public void setParent(AddressElement parent) { assert parent instanceof ElementWithStreets; super.setParent(parent); } @Override public ElementWithStreets getParent() { assert parent instanceof ElementWithStreets; return (ElementWithStreets) parent; } @Override protected int[] getFieldMatchList(OsmPrimitive primitive) { int[] result = {0}; if (!isMatchable(primitive)) return result; result[0] = matchFieldAbbrev(name, primitive.get("name")); return result; } @Override public List<Proposal> getDiff(OsmPrimitive prim) { List<Proposal> props = new NotNullList<>(); props.add(getStringFieldDiff(PrimUtils.KEY_NAME, prim.get(PrimUtils.KEY_NAME), getName())); return props; } public static boolean isMatchable(OsmPrimitive prim) { return (prim.get(PrimUtils.KEY_HIGHWAY) != null); } }