protected function getValueFromExpression(\blaze\web\application\BlazeContext $context, $subExpressions, $subBrackets, $expr) { if ($expr instanceof BaseOperation) { $val = $expr->getValue($context, $subExpressions, $subBrackets); } else { $val = $expr; } $val = $this->resolveSubParts($context, $subExpressions, $subBrackets, $val); if (($class = \blaze\lang\Number::getNumberClass($val)) != null) { return $class->getMethod('asNative')->invoke(null, $val); } else { if (preg_match('/^(true|false)$/', $val)) { return \blaze\lang\Boolean::parseBoolean($val); } else { if (preg_match('/^(null)$/', $val)) { return null; } else { //if(strpos($val, '.') !== false) return $context->getELContext()->getELResolver()->getValue($val); // else // return $val; } } } }
/** * Generate a new BigDecimal Object. * @param <int|string|float|blaze\lang\Number> $value Is a native String, with scale and algebric sign * @param <type> $scale If value has no scale you can define the scale */ public function __construct($value, $scale = null) { if (($class = Number::getNumberClass($value)) !== null) { $className = $class->getName()->toNative(); $value = $className::asNative($value); } else { if (!self::isNativeType($value)) { throw new \blaze\lang\NumberFormatException('Not a valid representation of BigDecimal!'); } } $this->value = String::asNative($value); if ($scale != null) { $this->scale = $scale; } else { $ar = explode('.', $this->value); $count = count($ar); if ($count > 2) { throw new \blaze\lang\NumberFormatException('Not a valid representation of BigDecimal!'); } if ($count == 2) { $this->scale = strlen($ar[1]); } else { $this->scale = 0; } } }
public function __construct($value) { if (($class = Number::getNumberClass($value)) !== null) { $value = $class->getMethod('asNative')->invoke(null, $value); } else { if (!self::isNativeType($value)) { throw new \blaze\lang\NumberFormatException('Not a valid representation of BigInteger!'); } } $this->value = String::asNative($value); }
/** * * @param blaze\lang\Float|float $value * @return float */ public static function asNative($value) { return (double) parent::asNative($value); }
private function getWhereColumn($string, $classMetas, \blaze\persistence\EntityManager $em) { $str = \blaze\lang\String::asWrapper($string); if ($str->startsWith(':') && !$str->contains(' ')) { return $string; } else { if ($str->equalsIgnoreCase('?')) { return $string; } else { if ($str->startsWith('"') && $str->endsWith('"')) { return $string; } else { if (\blaze\lang\Number::getNumberClass($string) !== null) { return $string; } } } } $parts = explode('.', $string); $alias = null; foreach ($classMetas as $classAlias => $meta) { if ($parts[0] === $classAlias) { $alias = array_shift($parts); break; } } if (count($classMetas) == 1) { $meta = array_shift($classMetas); $column = $this->recursiveColumnLookup($meta, $parts); } else { foreach ($classMetas as $classAlias => $meta) { if ($alias === null || $alias === $classAlias) { $column = $this->recursiveColumnLookup($meta, $parts); } } } if ($alias !== null) { return $alias . '.' . $column; } else { return $column; } }
/** * * @param blaze\lang\Integer|int $value * @return int */ public static function asNative($value) { return (int) parent::asNative($value) & 0xffff; }