
prerna.sablecc2.translations.AbstractDatasourceModificationTranslation Maven / Gradle / Ivy
The newest version!
package prerna.sablecc2.translations;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.Vector;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import prerna.om.Insight;
import prerna.query.querystruct.AbstractQueryStruct;
import prerna.reactor.IReactor;
import prerna.reactor.qs.AbstractQueryStructReactor;
import prerna.sablecc2.LazyTranslation;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.util.Constants;
public class AbstractDatasourceModificationTranslation extends LazyTranslation {
private static final Logger classLogger = LogManager.getLogger(AbstractDatasourceModificationTranslation.class);
// create a variable to keep track of the current mapping of the original expression to the encoded expression
public HashMap encodedToOriginal = new HashMap();
public List encodingList = new Vector();
protected static Set importTypes = new HashSet();
static {
importTypes.add("Database");
importTypes.add("FileRead");
importTypes.add("GoogleSheetSource");
}
public AbstractDatasourceModificationTranslation(Insight insight) {
super(insight);
this.isTimeTracking = false;
}
/**
* Same method as in lazy with addition of addRoutine method
*/
@Override
protected void deInitReactor() {
if(curReactor != null) {
// merge up and update the plan
try {
curReactor.mergeUp();
curReactor.updatePlan();
} catch(Exception e) {
classLogger.error(Constants.STACKTRACE, e);
throw new IllegalArgumentException(e.getMessage());
}
// get the parent
Object parent = curReactor.Out();
// set the parent as the curReactor if it is present
prevReactor = curReactor;
if(parent instanceof IReactor) {
curReactor = (IReactor) parent;
} else {
curReactor = null;
}
// account for moving qs
if(curReactor == null && prevReactor instanceof AbstractQueryStructReactor) {
AbstractQueryStruct qs = ((AbstractQueryStructReactor) prevReactor).getQs();
this.planner.addVariable(this.resultKey, new NounMetadata(qs, PixelDataType.QUERY_STRUCT));
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy