in app/helpers/RangeHeader.scala [47:65]
protected def checkForOverlap(headers: Array[RangeHeader]):Try[Seq[RangeHeader]] = {
if(headers.head.end.isEmpty && headers.length>1){
Failure(new BadDataError("First header specifies until end of file but there is more than one header"))
}
for(i <- 0 until headers.length-1){
if(i>0 && headers(i).start.isEmpty){
return Failure(new BadDataError("Open start range that is not the first in sequence"))
} else if(i<headers.length-1 && headers(i).end.isEmpty) {
return Failure(new BadDataError(s"Open end range at position $i / ${headers.length} that is not the last in sequence"))
} else {
if (headers(i).end.isDefined && headers(i + 1).start.isDefined) {
if (headers(i).end.get > headers(i + 1).start.get) {
return Failure(new BadDataError(s"Ranges ${headers(i).toString} and ${headers(i+1).toString} overlap"))
}
}
}
}
Success(headers)
}