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

prerna.reactor.task.RemoveTaskReactor Maven / Gradle / Ivy

The newest version!
package prerna.reactor.task;

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

import prerna.reactor.AbstractReactor;
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.ITask;
import prerna.util.insight.InsightUtility;

public class RemoveTaskReactor extends AbstractReactor {
	
	private static final String DROP_NOW_KEY = "dropNow";

	public RemoveTaskReactor() {
		this.keysToGet = new String[]{ReactorKeysEnum.TASK_ID.getKey(), DROP_NOW_KEY};
	}
	
	@Override
	public NounMetadata execute() {
		// get the task id
		NounMetadata inputNoun = this.curRow.getNoun(0);
		String taskId = null;
		if(inputNoun.getNounType() == PixelDataType.TASK) {
			taskId = ((ITask) inputNoun.getValue()).getId();
		} else {
			taskId = inputNoun.getValue().toString();
		}
		ITask task = insight.getTaskStore().getTask(taskId);
		if(task == null) {
			throw new IllegalArgumentException("Could not find task id = " + taskId);
		}
		
		// drop now
		if(dropNow()) {
			InsightUtility.removeTask(this.insight, taskId);
			Map taskMap = new HashMap<>();
			taskMap.put("taskId", task.getId());
			return new NounMetadata(taskMap, PixelDataType.MAP, PixelOperationType.REMOVE_TASK);
		}
		
		return new NounMetadata(taskId, PixelDataType.REMOVE_TASK, PixelOperationType.REMOVE_TASK);
	}
	
	/**
	 * Determine if we should remove right away or during the stream
	 * @return
	 */
	protected boolean dropNow() {
		if(this.curRow.size() > 1) {
			return Boolean.parseBoolean(this.curRow.get(1).toString());
		}
		return false;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy