Class SQLFunctionDijkstra
- java.lang.Object
-
- com.arcadedb.query.sql.function.SQLFunctionAbstract
-
- com.arcadedb.query.sql.function.SQLFunctionConfigurableAbstract
-
- com.arcadedb.query.sql.function.math.SQLFunctionMathAbstract
-
- com.arcadedb.query.sql.function.graph.SQLFunctionPathFinder
-
- com.arcadedb.query.sql.function.graph.SQLFunctionDijkstra
-
- All Implemented Interfaces:
SQLFunction
public class SQLFunctionDijkstra extends SQLFunctionPathFinder
Dijkstra's algorithm describes how to find the cheapest path from one node to another node in a directed weighted graph.The first parameter is source record. The second parameter is destination record. The third parameter is a name of property that represents 'weight'.
If property is not defined in edge or is null, distance between vertexes are 0.
- Author:
- Luca Garulli (l.garulli--(at)--gmail.com)
-
-
Field Summary
Fields Modifier and Type Field Description static String
NAME
-
Fields inherited from class com.arcadedb.query.sql.function.graph.SQLFunctionPathFinder
context, distance, MIN, paramDestinationVertex, paramDirection, paramSourceVertex, predecessors, unSettledNodes
-
Fields inherited from class com.arcadedb.query.sql.function.SQLFunctionConfigurableAbstract
configuredParameters
-
Fields inherited from class com.arcadedb.query.sql.function.SQLFunctionAbstract
name
-
-
Constructor Summary
Constructors Constructor Description SQLFunctionDijkstra()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LinkedList<Vertex>
execute(Object iThis, Identifiable iCurrentRecord, Object iCurrentResult, Object[] iParams, CommandContext iContext)
Process a record.protected float
getDistance(Vertex node, Vertex target)
String
getSyntax()
Returns a convenient SQL String representation of the function.protected boolean
isVariableEdgeWeight()
-
Methods inherited from class com.arcadedb.query.sql.function.graph.SQLFunctionPathFinder
aggregateResults, continueTraversing, execute, findMinimalDistances, getMinimum, getNeighbors, getPath, getResult, getShortestDistance, isNotSettled, sumDistances
-
Methods inherited from class com.arcadedb.query.sql.function.math.SQLFunctionMathAbstract
getClassWithMorePrecision, getContextValue
-
Methods inherited from class com.arcadedb.query.sql.function.SQLFunctionConfigurableAbstract
config, toString
-
Methods inherited from class com.arcadedb.query.sql.function.SQLFunctionAbstract
getName
-
-
-
-
Field Detail
-
NAME
public static final String NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
execute
public LinkedList<Vertex> execute(Object iThis, Identifiable iCurrentRecord, Object iCurrentResult, Object[] iParams, CommandContext iContext)
Description copied from interface:SQLFunction
Process a record.iCurrentRecord
- : current recordiCurrentResult
- TODOiParams
- : function parameters, number is ensured to be within minParams and maxParams.iContext
- : object calling this function- Returns:
- function result, can be null. Special cases : can be null if function aggregate results, can be null if function filter results : this mean result is excluded
-
getSyntax
public String getSyntax()
Description copied from interface:SQLFunction
Returns a convenient SQL String representation of the function.Example :
myFunction( param1, param2, [optionalParam3])
This text will be used in exception messages.
- Returns:
- String , never null.
-
getDistance
protected float getDistance(Vertex node, Vertex target)
- Specified by:
getDistance
in classSQLFunctionPathFinder
-
isVariableEdgeWeight
protected boolean isVariableEdgeWeight()
- Overrides:
isVariableEdgeWeight
in classSQLFunctionPathFinder
-
-