use of com.orientechnologies.orient.core.command.OBasicCommandContext in project orientdb by orientechnologies.
the class OFunctionSqlTest method functionSqlWithInnerFunctionJs.
@Test
public void functionSqlWithInnerFunctionJs() {
ODatabaseDocument db = new ODatabaseDocumentTx("memory:functionSqlWithInnerFunctionJs");
db.create();
// ODatabaseRecordThreadLocal.INSTANCE.set(db);
ODocument doc1 = new ODocument("Test");
doc1.field("name", "Enrico");
db.save(doc1);
doc1.reset();
doc1.setClassName("Test");
doc1.field("name", "Luca");
db.save(doc1);
OFunction function = new OFunction();
function.setName("test");
function.setCode("select name from Test where name = :name and hello(:name) = 'Hello Enrico'");
function.setParameters(new ArrayList<String>() {
{
add("name");
}
});
function.save();
OFunction function1 = new OFunction();
function1.setName("hello");
function1.setLanguage("javascript");
function1.setCode("return 'Hello ' + name");
function1.setParameters(new ArrayList<String>() {
{
add("name");
}
});
function1.save();
Object result = function.executeInContext(new OBasicCommandContext(), "Enrico");
System.out.println(result);
Assert.assertEquals(((OResultSet) result).size(), 1);
db.drop();
}
use of com.orientechnologies.orient.core.command.OBasicCommandContext in project orientdb by orientechnologies.
the class OSQLFunctionAstarTest method test12Execute.
@Test
public void test12Execute() throws Exception {
Map<String, Object> options = new HashMap<String, Object>();
options.put(OSQLFunctionAstar.PARAM_DIRECTION, Direction.OUT);
options.put(OSQLFunctionAstar.PARAM_PARALLEL, true);
options.put(OSQLFunctionAstar.PARAM_TIE_BREAKER, false);
options.put(OSQLFunctionAstar.PARAM_EMPTY_IF_MAX_DEPTH, false);
options.put(OSQLFunctionAstar.PARAM_MAX_DEPTH, 3);
options.put(OSQLFunctionAstar.PARAM_EDGE_TYPE_NAMES, new String[] { "has_path" });
options.put(OSQLFunctionAstar.PARAM_VERTEX_AXIS_NAMES, new String[] { "lat", "lon" });
options.put(OSQLFunctionAstar.PARAM_HEURISTIC_FORMULA, HeuristicFormula.CUSTOM);
options.put(OSQLFunctionAstar.PARAM_CUSTOM_HEURISTIC_FORMULA, "myCustomHeuristic");
final List<OrientVertex> result = functionAstar.execute(null, null, null, new Object[] { v6, v1, "'weight'", options }, new OBasicCommandContext());
assertEquals(16, graph.countEdges("has_path"));
assertEquals(4, result.size());
assertEquals(v6, result.get(0));
assertEquals(v5, result.get(1));
assertEquals(v2, result.get(2));
assertEquals(v3, result.get(3));
}
use of com.orientechnologies.orient.core.command.OBasicCommandContext in project orientdb by orientechnologies.
the class OSQLFunctionAstarTest method test8Execute.
@Test
public void test8Execute() throws Exception {
Map<String, Object> options = new HashMap<String, Object>();
options.put(OSQLFunctionAstar.PARAM_DIRECTION, Direction.OUT);
options.put(OSQLFunctionAstar.PARAM_PARALLEL, true);
options.put(OSQLFunctionAstar.PARAM_TIE_BREAKER, false);
options.put(OSQLFunctionAstar.PARAM_EDGE_TYPE_NAMES, new String[] { "has_path" });
options.put(OSQLFunctionAstar.PARAM_VERTEX_AXIS_NAMES, new String[] { "lat", "lon" });
options.put(OSQLFunctionAstar.PARAM_HEURISTIC_FORMULA, HeuristicFormula.EUCLIDEANNOSQR);
final List<OrientVertex> result = functionAstar.execute(null, null, null, new Object[] { v6, v1, "'weight'", options }, new OBasicCommandContext());
assertEquals(16, graph.countEdges("has_path"));
assertEquals(5, result.size());
assertEquals(v6, result.get(0));
assertEquals(v5, result.get(1));
assertEquals(v2, result.get(2));
assertEquals(v4, result.get(3));
assertEquals(v1, result.get(4));
}
use of com.orientechnologies.orient.core.command.OBasicCommandContext in project orientdb by orientechnologies.
the class OSQLFunctionAstarTest method test3Execute.
@Test
public void test3Execute() throws Exception {
Map<String, Object> options = new HashMap<String, Object>();
options.put(OSQLFunctionAstar.PARAM_DIRECTION, "out");
options.put(OSQLFunctionAstar.PARAM_PARALLEL, true);
options.put(OSQLFunctionAstar.PARAM_EDGE_TYPE_NAMES, new String[] { "has_path" });
options.put(OSQLFunctionAstar.PARAM_VERTEX_AXIS_NAMES, new String[] { "lat", "lon" });
final List<OrientVertex> result = functionAstar.execute(null, null, null, new Object[] { v1, v6, "'weight'", options }, new OBasicCommandContext());
assertEquals(16, graph.countEdges("has_path"));
assertEquals(3, result.size());
assertEquals(v1, result.get(0));
assertEquals(v5, result.get(1));
assertEquals(v6, result.get(2));
}
use of com.orientechnologies.orient.core.command.OBasicCommandContext in project orientdb by orientechnologies.
the class OSQLFunctionAstarTest method test4Execute.
@Test
public void test4Execute() throws Exception {
Map<String, Object> options = new HashMap<String, Object>();
options.put(OSQLFunctionAstar.PARAM_DIRECTION, "out");
options.put(OSQLFunctionAstar.PARAM_PARALLEL, true);
options.put(OSQLFunctionAstar.PARAM_EDGE_TYPE_NAMES, new String[] { "has_path" });
options.put(OSQLFunctionAstar.PARAM_VERTEX_AXIS_NAMES, new String[] { "lat", "lon", "alt" });
final List<OrientVertex> result = functionAstar.execute(null, null, null, new Object[] { v1, v6, "'weight'", options }, new OBasicCommandContext());
assertEquals(16, graph.countEdges("has_path"));
assertEquals(3, result.size());
assertEquals(v1, result.get(0));
assertEquals(v5, result.get(1));
assertEquals(v6, result.get(2));
}
Aggregations