private function dispara(literal $literal, hecho $hecho) { if ($literal->getEsNumerico()) { switch ($literal->getOprel()) { case literal::$DIFERENTE: return $literal->getValor() != $hecho->getValor(); case literal::$IGUAL: return $literal->getValor() == $hecho->getValor(); case literal::$MAYOR: return $hecho->getValor() > $literal->getValor(); case literal::$MAYOR_IGUAL: return $hecho->getValor() >= $literal->getValor(); case literal::$MENOR: return $hecho->getValor() < $literal->getValor(); case literal::$MENOR_IGUAL: return $hecho->getValor() <= $literal->getValor(); } } else { switch ($literal->getOprel()) { case literal::$IGUAL: return strcmp($literal->getValor(), $hecho->getValor()) == 0 ? TRUE : FALSE; case literal::$DIFERENTE: return strcmp($literal->getValor(), $hecho->getValor()) == 0 ? FALSE : TRUE; } } }