public abstract class OSQLFunctionAbstract extends Object implements OSQLFunction
OSQLParser.getInstance().registerStatelessFunction()
or
OSQLParser.getInstance().registerStatefullFunction()
to being used by the SQL engine.Modifier and Type | Field and Description |
---|---|
protected int |
maxParams |
protected int |
minParams |
protected String |
name |
Constructor and Description |
---|
OSQLFunctionAbstract(String iName,
int iMinParams,
int iMaxParams) |
Modifier and Type | Method and Description |
---|---|
boolean |
aggregateResults()
A function can make calculation on several records before returning a result.
|
void |
config(Object[] iConfiguredParameters)
Configure the function.
|
boolean |
filterResult()
A function can act both as transformation or filtering records.
|
protected String |
getDistributedStorageId() |
int |
getMaxParams()
Maximum number of parameter this function can handle.
|
int |
getMinParams()
Minimum number of parameter this function must have.
|
String |
getName()
Function name, the name is used by the sql parser to identify a call this function.
|
Object |
getResult()
Only called when function aggregates results after all records have been passed to the
function.
|
protected Object |
getSingleItem(Object source)
Attempt to extract a single item from object if it's a multi value
OMultiValue If
source is a multi value |
protected Object |
getSingleProperty(Object source,
boolean requireSingleProperty)
Attempts to identify the source as a map-like object with single property and return it.
|
Object |
mergeDistributedResult(List<Object> resultsToMerge)
This method correspond to distributed query execution
|
protected boolean |
returnDistributedResult() |
void |
setResult(Object iResult)
Called by OCommandExecutor, given parameter is the number of results.
|
boolean |
shouldMergeDistributedResult()
This method correspond to distributed query execution
|
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
execute, getSyntax
protected String name
protected int minParams
protected int maxParams
public OSQLFunctionAbstract(String iName, int iMinParams, int iMaxParams)
public String getName()
OSQLFunction
getName
in interface OSQLFunction
public int getMinParams()
OSQLFunction
getMinParams
in interface OSQLFunction
public int getMaxParams()
OSQLFunction
getMaxParams
in interface OSQLFunction
public void config(Object[] iConfiguredParameters)
OSQLFunction
config
in interface OSQLFunction
public boolean aggregateResults()
OSQLFunction
Example of such function : sum, count, max, min ...
The final result of the aggregation is obtain by calling OSQLFunction.getResult()
aggregateResults
in interface OSQLFunction
public boolean filterResult()
OSQLFunction
Function should return null for the execute method if the record must be excluded.
filterResult
in interface OSQLFunction
public Object getResult()
OSQLFunction
getResult
in interface OSQLFunction
public void setResult(Object iResult)
OSQLFunction
setResult
in interface OSQLFunction
public boolean shouldMergeDistributedResult()
OSQLFunction
shouldMergeDistributedResult
in interface OSQLFunction
true
if results that comes from different nodes need to be merged to obtain
valid one, false
otherwisepublic Object mergeDistributedResult(List<Object> resultsToMerge)
OSQLFunction
mergeDistributedResult
in interface OSQLFunction
resultsToMerge
- is the results that comes from different nodesprotected boolean returnDistributedResult()
protected String getDistributedStorageId()
protected Object getSingleItem(Object source)
OMultiValue
If
source is a multi valuesource
- a value to attempt extract single value from itprotected Object getSingleProperty(Object source, boolean requireSingleProperty)
source
- The object to checkrequireSingleProperty
- True if the method should return null when source doesn't have a
single property. Otherwise, the object will be returned.Copyright © 2009–2020 OrientDB. All rights reserved.