use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class TestCompiledLongExpression method testSubtractWithLongs.
@Test
public void testSubtractWithLongs() {
FunctionInterface helperFunction = new GiveLongTestFunction();
FunctionDefinition fd = new FunctionDefinition(helperFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToLong", fd);
Operand result;
result = Expression.evaluate("ToLong(2) - ToLong(1)", null, null, null);
Assert.assertEquals(1L, (long) result.value);
result = Expression.evaluate("2 - ToLong(1)", null, null, null);
Assert.assertEquals(1L, (long) result.value);
result = Expression.evaluate("ToLong(2) - 1", null, null, null);
Assert.assertEquals(1L, (long) result.value);
result = Expression.evaluate("2.0 - ToLong(1)", null, null, null);
Assert.assertEquals(1.0, (double) result.value, 0.000001);
result = Expression.evaluate("ToLong(2) - 1.0", null, null, null);
Assert.assertEquals(1.0, (double) result.value, 0.000001);
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class TestCompiledPercentageExpression method setup.
@Before
public void setup() {
FunctionInterface giveLongFunction = new GiveLongTestFunction();
FunctionDefinition fd = new FunctionDefinition(giveLongFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToLong", fd);
FunctionInterface givePercentageFunction = new GivePercentageTestFunction();
fd = new FunctionDefinition(givePercentageFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToPercentage", fd);
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class FunctionListCommand method functions.
public void functions(CommandSession session, String filter) {
String serviceFilter = null;
if (filter != null) {
serviceFilter = "(functionName=" + filter + ")";
}
session.getConsole().println("filter: " + filter);
try {
Collection<ServiceReference<FunctionInterface>> result = bundleContext.getServiceReferences(FunctionInterface.class, serviceFilter);
for (ServiceReference<FunctionInterface> serviceReference : result) {
String functionName = (String) serviceReference.getProperty("functionName");
FunctionDefinition fd = (FunctionDefinition) serviceReference.getProperty("functionDefinition");
session.getConsole().println("" + functionName);
session.getConsole().println("\t" + fd.getDescription());
// }
}
} catch (InvalidSyntaxException e) {
e.printStackTrace(session.getConsole());
}
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class StandardFunctionsTest method testOffsetDate.
@Test
public void testOffsetDate() {
FunctionInterface fi = fff.getInstance(cl, "OffsetDate");
fi.reset();
fi.insertDateOperand(new Date());
fi.insertIntegerOperand(10);
fi.insertIntegerOperand(6);
fi.insertIntegerOperand(17);
fi.insertIntegerOperand(12);
fi.insertIntegerOperand(0);
fi.insertIntegerOperand(0);
Object o = fi.evaluateWithTypeChecking();
assertNotNull(o);
assertEquals(Date.class, o.getClass());
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class StandardFunctionsTest method testToSecureImage.
@Test
public void testToSecureImage() {
FunctionInterface fi = fff.getInstance(cl, "ToSecureImage");
fi.reset();
fi.insertStringOperand("SECURE");
Object o = fi.evaluateWithTypeChecking();
assertNotNull(o);
assertEquals(Binary.class, o.getClass());
fi.reset();
fi.insertOperand(Operand.NULL);
o = fi.evaluateWithTypeChecking();
assertNull(o);
System.err.println(System.currentTimeMillis());
long l = (Long.parseLong("1234567890000") - System.currentTimeMillis());
Calendar c = Calendar.getInstance();
c.add(Calendar.MILLISECOND, (int) l);
System.err.println(SimpleDateFormat.getInstance().format(c.getTime()));
}
Aggregations