All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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