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

prerna.reactor.export.CollectAllReactor Maven / Gradle / Ivy

The newest version!
package prerna.reactor.export;

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

import prerna.reactor.task.TaskBuilderReactor;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.sablecc2.om.task.BasicIteratorTask;
import prerna.util.usertracking.UserTrackerFactory;

import prerna.util.Constants;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class CollectAllReactor extends TaskBuilderReactor {
	private static final Logger classLogger = LogManager.getLogger(CollectAllReactor.class);

	/**
	 * This class is responsible for collecting data from a task and returning it
	 */

	// -1 will get all
	private int limit = -1;
	
	public CollectAllReactor() {
		this.keysToGet = new String[]{ReactorKeysEnum.TASK.getKey(), ReactorKeysEnum.INCLUDE_META_KEY.getKey()};
	}
	
	public NounMetadata execute() {
		this.task = getTask();
		this.task.setNumCollect(this.limit);
		buildTask();
		
		// tracking
		if (this.task instanceof BasicIteratorTask) {
			try {
				// NEW TRACKER
				if(this.task.getTaskOptions() != null && !this.task.getTaskOptions().isEmpty()) {
					UserTrackerFactory.getInstance().trackVizWidget(this.insight, this.task.getTaskOptions(), ((BasicIteratorTask) task).getQueryStruct());
				} else {
					UserTrackerFactory.getInstance().trackQueryData(this.insight, ((BasicIteratorTask) task).getQueryStruct());
				}
			} catch(Exception e) {
				classLogger.error(Constants.STACKTRACE, e);
			}
		}
		
		return new NounMetadata(task, PixelDataType.FORMATTED_DATA_SET, PixelOperationType.TASK_DATA); //return the data
	}
	
	@Override
	protected void buildTask() {
		// do nothing
	}
	
	@Override
	public List getOutputs() {
		List outputs = super.getOutputs();
		if(outputs != null && !outputs.isEmpty()) return outputs;
		
		outputs = new Vector();
		NounMetadata output = new NounMetadata(this.signature, PixelDataType.FORMATTED_DATA_SET, PixelOperationType.TASK_DATA);
		outputs.add(output);
		return outputs;
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy