retrieve.traitRetrievePosition();
// search forward if 'first-starting-within-page' or
// 'first-including-carryover'
if (retrievePosition == RetrievePosition.FIRST_INCLUDING_CARRYOVER) {
for (int i = 0; i < pageMarkers.size(); i++) {
final Marker currentMarker = pageMarkers.get(i);
if (currentMarker.traitMarkerClassName().equals(
retrieve.traitRetrieveClassName())) {
return currentMarker;
}
}
} else if (retrievePosition
== RetrievePosition.FIRST_STARTING_WITHIN_PAGE) {
for (int i = 0; i < pageMarkers.size(); i++) {
final Marker currentMarker = pageMarkers.get(i);
if (currentMarker.traitMarkerClassName().equals(
retrieve.traitRetrieveClassName())) {
if (startsHere(currentMarker)) {
return currentMarker;
}
}
}
} else if (retrievePosition
== RetrievePosition.LAST_STARTING_WITHIN_PAGE) {
for (int i = pageMarkers.size() - 1; i >= 0; i--) {
final Marker currentMarker = pageMarkers.get(i);
if (currentMarker.traitMarkerClassName().equals(
retrieve.traitRetrieveClassName())) {
if (startsHere(currentMarker)) {
return currentMarker;
}
}
}
} else if (retrievePosition
== RetrievePosition.LAST_ENDING_WITHIN_PAGE) {
for (int i = pageMarkers.size() - 1; i >= 0; i--) {
final Marker currentMarker = pageMarkers.get(i);
if (currentMarker.traitMarkerClassName().equals(
retrieve.traitRetrieveClassName())) {
if (endsHere(currentMarker)) {
return currentMarker;
}
}