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

prerna.reactor.qs.selectors.PSelectReactor Maven / Gradle / Ivy

The newest version!
package prerna.reactor.qs.selectors;

import java.util.List;
import java.util.Vector;

import prerna.query.querystruct.AbstractQueryStruct;
import prerna.query.querystruct.selectors.IQuerySelector;
import prerna.query.querystruct.selectors.QueryColumnSelector;
import prerna.reactor.qs.AbstractQueryStructReactor;
import prerna.sablecc2.om.GenRowStruct;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;

public class PSelectReactor extends AbstractQueryStructReactor {	
	
	/**
	 * This class is meant to be used for getting a query column selector
	 * When we have a path that we are trying to get 
	 * Example : JSON parsing
	 */
	
	
	public PSelectReactor() {
		this.keysToGet = new String[]{ReactorKeysEnum.COLUMN.getKey()};
	}
	
	protected AbstractQueryStruct createQueryStruct() {
		GenRowStruct qsInputs = this.getCurRow();
		if(qsInputs != null && !qsInputs.isEmpty()) {
			List selectors = new Vector();
			for(int selectIndex = 0;selectIndex < qsInputs.size();selectIndex++) {
				NounMetadata input = qsInputs.getNoun(selectIndex);
				IQuerySelector selector = getSelector(input);
				if(selector != null) {
					selectors.add(selector);
				}
			}
			setAlias(selectors, this.selectorAlias, 0);
			qs.mergeSelectors(selectors);
		}
		return qs;
	}

	private IQuerySelector getSelector(NounMetadata input) {
		QueryColumnSelector c = new QueryColumnSelector();
		c.setTable("PATH");
		c.setColumn(input.getValue().toString());
		return c;
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy