package jmathlib.toolbox.io;
import jmathlib.core.tokens.*;
import jmathlib.core.tokens.numbertokens.DoubleNumberToken;
import jmathlib.core.functions.ExternalFunction;
import jmathlib.core.interpreter.GlobalValues;
import java.io.*;
public class isdirectory extends ExternalFunction
{
public OperandToken evaluate(Token[] operands, GlobalValues globals)
{
if (getNArgIn(operands) != 1)
throwMathLibException("isdirectory: number of arguments != 1");
if (!(operands[0] instanceof CharToken))
throwMathLibException("isdirectory: argument must be a string");
String name = ((CharToken)operands[0]).toString();
try
{
File dir = new File(globals.getWorkingDirectory(),name);
if (dir.isDirectory())
return new DoubleNumberToken(1);
else
return new DoubleNumberToken(0);
}
catch (Exception e)
{
throwMathLibException("isdirectory: IO exception");
}
return null;
} // end eval
}
/*
@GROUP
IO
@SYNTAX
isdirectory(name)
@DOC
checks if the given name is a directory
@EXAMPLES
<programlisting>
isdirectory("bar");
</programlisting>
@SEE
cd, createnewfile, dir, exist, mkdir, rmdir, delete, isfile, ishidden, lastmodified
*/