if (tailWays == 0 && tail.getCoor().isIn(downloadedArea)) {
highlight.add(tail);
}
if (!highlight.isEmpty()) {
errors.add(new TestError(this, Severity.ERROR, tr("Unconnected coastline"),
UNCONNECTED_COASTLINE, primitives, highlight));
}
}
boolean unordered = false;
boolean reversed = headWays == 1 && headReversed && tailWays == 1 && tailReversed;
if (headWays > 1 || tailWays > 1) {
unordered = true;
} else if (headUnordered || tailUnordered) {
unordered = true;
} else if (reversed && next == prev) {
unordered = true;
} else if ((headReversed || tailReversed) && headReversed != tailReversed) {
unordered = true;
}
if (unordered) {
List<OsmPrimitive> highlight = new ArrayList<>();
if (headWays > 1 || headUnordered || headReversed || reversed) {
highlight.add(head);
}
if (tailWays > 1 || tailUnordered || tailReversed || reversed) {
highlight.add(tail);
}
errors.add(new TestError(this, Severity.ERROR, tr("Unordered coastline"),
UNORDERED_COASTLINE, primitives, highlight));
}
else if (reversed) {
errors.add(new TestError(this, Severity.ERROR, tr("Reversed coastline"),
REVERSED_COASTLINE, primitives));
}
}
coastlines = null;