Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
package prerna.reactor.algorithms.xray;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import prerna.algorithm.api.ITableDataFrame;
import prerna.ds.r.RSyntaxHelper;
import prerna.engine.api.IRawSelectWrapper;
import prerna.query.querystruct.SelectQueryStruct;
import prerna.query.querystruct.selectors.QueryColumnSelector;
import prerna.reactor.frame.r.AbstractRFrameReactor;
import prerna.sablecc2.om.GenRowStruct;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.util.AssetUtility;
import prerna.util.Constants;
import prerna.util.DIHelper;
import prerna.util.Utility;
public class GenerateXRayHashingFrameReactor extends AbstractRFrameReactor {
public static final String CLASS_NAME = GenerateXRayHashingFrameReactor.class.getName();
public static final Logger classLogger = LogManager.getLogger(CLASS_NAME);
public static final String FILES_KEY = "files";
public static final String STATUS_KEY = "status";
public static final String FRAME_NAMES_KEY = "frameNames";
public static final String ROW_MATCHING = "rowComparison";
private String folderPath;
private Map configMap;
public GenerateXRayHashingFrameReactor() {
this.keysToGet = new String[] {ReactorKeysEnum.FILE_PATH.getKey(), ReactorKeysEnum.SPACE.getKey(),
ReactorKeysEnum.FRAME.getKey(), ReactorKeysEnum.OVERRIDE.getKey(), ReactorKeysEnum.CONFIG.getKey(),
GenerateXRayMatchingReactor.ROW_MATCHING};
}
@Override
public NounMetadata execute() {
init();
String[] reqPackages = new String[] {"data.table", "textreuse"};
this.rJavaTranslator.checkPackages(reqPackages);
organizeKeys();
// check if user is logged in
String space = this.keyValue.get(this.keysToGet[1]);
// if security enables, you need proper permissions
// this takes in the insight and does a user check that the user has access to perform the operations
String baseFolder = AssetUtility.getAssetBasePath(this.insight, space, true);
File baseF = new File(baseFolder);
if(!baseF.exists() || !baseF.isDirectory()) {
baseF.mkdirs();
}
// specify the folder from the base
String folderName = Utility.normalizePath(keyValue.get(keysToGet[0]));
if(folderName == null || folderName.isEmpty()) {
folderName = "xray_corpus";
}
this.folderPath = (baseFolder + "/" + folderName).replace('\\', '/');
File xrayFolder = new File(Utility.normalizePath(this.folderPath));
if(!xrayFolder.exists() || !xrayFolder.isDirectory()) {
xrayFolder.mkdirs();
}
// see if we are overriding the existing hash or not
boolean override = Boolean.parseBoolean(this.keyValue.get(ReactorKeysEnum.OVERRIDE.getKey()) + "");
boolean rowComparison = Boolean.parseBoolean(this.keyValue.get(GenerateXRayMatchingReactor.ROW_MATCHING) + "");
List