diff --git a/src/main/scala/scim/components/Parser.scala b/src/main/scala/scim/components/Parser.scala index de5ba4e..ffb2fc9 100644 --- a/src/main/scala/scim/components/Parser.scala +++ b/src/main/scala/scim/components/Parser.scala @@ -97,7 +97,7 @@ class SimulationConfigParser(input: Map[String, Any], simulationBehaviours: Simu private def parseTimeLineElement(timeLineElement: Any): (Int, Option[Int]) = { timeLineElement match { case timeLineElement: Vector[_] => val elementVector = timeLineElement.asInstanceOf[Vector[Int]] - (elementVector(1), if(timeLineElement.contains(2)) Some(elementVector(2)) else None) + (elementVector(0), if(elementVector.size > 1) Some(elementVector(1)) else None) case timeLineElement: Map[_, _] => val elementMap = timeLineElement.asInstanceOf[Map[String, Int]] (elementMap("start"), if(elementMap.contains("end")) Some(elementMap("end")) else None) } @@ -111,7 +111,7 @@ class SimulationConfigParser(input: Map[String, Any], simulationBehaviours: Simu val start: Int = function(0).asInstanceOf[Int] // val end: Option[Int] = None // Not used val name: String = function(1).asInstanceOf[String] - val args: Option[FunctionArgs] = if (function.contains(3)) Some(FunctionArgs(function(2).asInstanceOf[Map[String, Any]])) else None + val args: Option[FunctionArgs] = if (function.size > 2) Some(FunctionArgs(function(2).asInstanceOf[Map[String, Any]])) else None if (!simulationBehaviours.get(name).isEmpty) funcPointer = Some((simulationBehaviours.get(name).get, args)) Map[Int, Option[(SimulationBehaviour, Option[FunctionArgs])]](start -> funcPointer) }