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

prerna.reactor.frame.sql.GetParamValuesReactor Maven / Gradle / Ivy

The newest version!
package prerna.reactor.frame.sql;

import java.util.HashMap;
import java.util.Map;

import prerna.query.parsers.GenExpressionWrapper;
import prerna.reactor.AbstractReactor;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;

public class GetParamValuesReactor extends AbstractReactor {

	public GetParamValuesReactor()
	{
		this.keysToGet = new String[] {ReactorKeysEnum.SQL.getKey(), ReactorKeysEnum.PARAM_KEY.getKey()};
		this.keyRequired = new int[] {1, 1};
	}

	
	@Override
	public NounMetadata execute() {
		// TODO Auto-generated method stub
		
		// replace the parameter
		// fill it 
		// generate the sql
		// generate wrapper from it
		// parameterize and regenerate - need to know if front end needs it like that
		organizeKeys();
		
		try
		{
			String id = keyValue.get(keysToGet[0]); // this is the id
			String param = keyValue.get(keysToGet[1]);
			
			GenExpressionWrapper wrapper = this.insight.getSQLWrapper(id);
			String defQuery = wrapper.getQueryForParam(param);

			Map  returnMap = new HashMap();
			returnMap.put("query", id);
			
			returnMap.put("params", wrapper.getAllParamNames());
			
			returnMap.put(param, defQuery);

			return new NounMetadata(returnMap, PixelDataType.MAP);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			return NounMetadata.getErrorNounMessage(e.getLocalizedMessage());
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy