app/models/MdcPing.scala (14 lines of code) (raw):
package models
import scala.xml.NodeSeq
/*
<mdcConnectivity>
<mdc ip="192.168.22.1" number="1" packetloss="0" ping="true" />
<mdc ip="192.168.22.3" number="2" packetloss="0" ping="true" />
</mdcConnectivity>
*/
case class MdcPing(ipAddress: String, packetloss:Int, visible:Boolean)
object MdcPing extends ((String,Int,Boolean)=>MdcPing) with stringToBool {
def fromXml(node:NodeSeq):Either[String,MdcPing] = try {
Right(new MdcPing(
node \@ "ip",
(node \@ "packetloss").toInt,
stringToBool(node \@ "ping")
))
} catch {
case ex:Throwable=>Left(ex.toString)
}
}