package water.rapids.ast.prims.time;
import org.joda.time.DateTimeZone;
import water.parser.ParseTime;
import water.rapids.Env;
import water.rapids.ast.AstPrimitive;
import water.rapids.ast.AstRoot;
import water.rapids.vals.ValStr;
import java.util.Set;
/**
*/
public class AstSetTimeZone extends AstPrimitive {
@Override
public String[] args() {
return new String[]{"tz"};
}
@Override
public int nargs() {
return 1 + 1;
} // (setTimeZone "TZ")
@Override
public String str() {
return "setTimeZone";
}
@Override
public ValStr apply(Env env, Env.StackHelp stk, AstRoot asts[]) {
final String tz = asts[1].exec(env).getStr();
Set<String> idSet = DateTimeZone.getAvailableIDs();
if (!idSet.contains(tz))
throw new IllegalArgumentException("Unacceptable timezone " + tz + " given. For a list of acceptable names, use listTimezone().");
//This is a distributed operation
ParseTime.setTimezone(tz);
return new ValStr(tz);
}
}