
com.xresch.cfw.features.query.functions.CFWQueryFunctionClone Maven / Gradle / Ivy
package com.xresch.cfw.features.query.functions;
import java.util.ArrayList;
import java.util.TreeSet;
import com.xresch.cfw._main.CFW;
import com.xresch.cfw.features.query.CFWQueryContext;
import com.xresch.cfw.features.query.CFWQueryFunction;
import com.xresch.cfw.features.query.EnhancedJsonObject;
import com.xresch.cfw.features.query.FeatureQuery;
import com.xresch.cfw.features.query.parse.QueryPartValue;
/************************************************************************************************************
*
* @author Reto Scheiwiller, (c) Copyright 2023
* @license MIT-License
************************************************************************************************************/
public class CFWQueryFunctionClone extends CFWQueryFunction {
public CFWQueryFunctionClone(CFWQueryContext context) {
super(context);
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public String uniqueName() {
return "clone";
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public TreeSet getTags(){
TreeSet tags = new TreeSet<>();
tags.add(CFWQueryFunction.TAG_ARRAYS);
tags.add(CFWQueryFunction.TAG_OBJECTS);
return tags;
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public String descriptionSyntax() {
return "clone(valueOrFieldname)";
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public String descriptionShort() {
return "Returns a clone of an array or JSON object.";
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public String descriptionSyntaxDetailsHTML() {
return "valueOrFieldname: The value to get create a clone from.
"
;
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public String descriptionHTML() {
return CFW.Files.readPackageResource(FeatureQuery.PACKAGE_MANUAL+".functions", "function_clone.html");
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public boolean supportsAggregation() {
return false;
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public void aggregate(EnhancedJsonObject object,ArrayList parameters) {
// not supported
}
/***********************************************************************************************
*
***********************************************************************************************/
@Override
public QueryPartValue execute(EnhancedJsonObject object, ArrayList parameters) {
int paramCount = parameters.size();
if(paramCount == 0) {
return QueryPartValue.newNull();
}
QueryPartValue valueToClone = parameters.get(0);
if(valueToClone != null) {
return valueToClone.getAsClone();
}
// return null in other cases
return QueryPartValue.newNull();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy