All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.joo.libra.support.functions.RandFunction Maven / Gradle / Ivy

package org.joo.libra.support.functions;

import org.joo.libra.PredicateContext;

public class RandFunction implements MultiArgsFunction {

	@Override
	public Object apply(PredicateContext context, Object[] t) {
		if (t != null && t.length != 0 && t.length != 2)
			throw new IllegalArgumentException("RAND function must have zeros or 2 arguments");
		if (t == null || t.length == 0)
			return rand();
		if (!(t[0] instanceof Number) || !(t[1] instanceof Number))
			throw new IllegalArgumentException("RAND arguments must be number");
		return rand((Number) t[0], (Number) t[1]);
	}

	private double rand(Number from, Number to) {
		double dFrom = from.doubleValue();
		double dTo = to.doubleValue();
		return Math.random() * (dTo - dFrom) + dFrom;
	}

	private double rand() {
		return Math.random();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy