
prerna.reactor.utils.HelpJsonReactor Maven / Gradle / Ivy
The newest version!
package prerna.reactor.utils;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import prerna.auth.User;
import prerna.auth.utils.SecurityAdminUtils;
import prerna.reactor.AbstractReactor;
import prerna.reactor.ReactorFactory;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.nounmeta.NounMetadata;
public class HelpJsonReactor extends AbstractReactor {
/**
* This reactor allows the user to view the names of all reactors
* There are no inputs to the reactor
*/
private static final String RESET_KEY = "reset";
private static Map> helpMap = null;
private static Map> adminHelpMap = null;
public HelpJsonReactor() {
this.keysToGet = new String[] {RESET_KEY};
}
@Override
public NounMetadata execute() {
User user = this.insight.getUser();
boolean isAdmin = (SecurityAdminUtils.getInstance(user)) != null;
organizeKeys();
boolean reset = Boolean.parseBoolean(this.keyValue.get(this.keysToGet[0]));
if(isAdmin) {
if(reset || adminHelpMap == null) {
HelpJsonReactor.adminHelpMap = createHelp(true);
}
return new NounMetadata(HelpJsonReactor.adminHelpMap, PixelDataType.MAP, PixelOperationType.HELP_JSON);
} else {
if(reset || helpMap == null) {
HelpJsonReactor.helpMap = createHelp(false);
}
return new NounMetadata(HelpJsonReactor.helpMap, PixelDataType.MAP, PixelOperationType.HELP_JSON);
}
}
/**
*
* @param isAdmin
* @return
*/
private Map> createHelp(boolean isAdmin) {
Map> retMap = new HashMap<>();
retMap.put("General", nonAdminFormat(new TreeSet(ReactorFactory.reactorHash.keySet()), isAdmin));
retMap.put("R", nonAdminFormat(new TreeSet(ReactorFactory.rFrameHash.keySet()), isAdmin));
retMap.put("PYTHON", nonAdminFormat(new TreeSet(ReactorFactory.pandasFrameHash.keySet()), isAdmin));
retMap.put("H2", nonAdminFormat(new TreeSet(ReactorFactory.h2FrameHash.keySet()), isAdmin));
retMap.put("NATIVE", nonAdminFormat(new TreeSet(ReactorFactory.nativeFrameHash.keySet()), isAdmin));
retMap.put("TINKER", nonAdminFormat(new TreeSet(ReactorFactory.tinkerFrameHash.keySet()), isAdmin));
retMap.put("EXPRESSION", nonAdminFormat(new TreeSet(ReactorFactory.expressionHash.keySet()), isAdmin));
return retMap;
}
private Set nonAdminFormat(TreeSet t, boolean isAdmin) {
if(isAdmin) {
return t;
}
Iterator iterator = t.iterator();
while(iterator.hasNext()) {
if(iterator.next().toString().toLowerCase().startsWith("admin")) {
iterator.remove();
}
}
return t;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy