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

prerna.sablecc2.FormWidgetTranslation Maven / Gradle / Ivy

The newest version!
package prerna.sablecc2;

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

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

import prerna.sablecc2.analysis.DepthFirstAdapter;
import prerna.sablecc2.node.ANoun;
import prerna.sablecc2.node.AOperation;
import prerna.sablecc2.node.ARoutineConfiguration;
import prerna.sablecc2.node.AScalarRegTerm;
import prerna.sablecc2.node.PRoutine;

public class FormWidgetTranslation extends DepthFirstAdapter {

	private static final Logger LOGGER = LogManager.getLogger(DashboardRecipeTranslation.class.getName());

	private List into = new Vector();
	private List values = new Vector();

	private boolean isInsert = false;
	private boolean isInto = false;
	private boolean isValues = false;

	@Override
	public void caseARoutineConfiguration(ARoutineConfiguration node) {
		List copy = new ArrayList(node.getRoutine());
		for (PRoutine e : copy) {
//			String expression = e.toString();
//			LOGGER.info("Processing " + expression);
			e.apply(this);
		}
	}

	@Override
	public void inAOperation(AOperation node) {
		String reactorId = node.getId().toString().trim();
		if (reactorId.equals("Insert")) {
			isInsert = true;
		}
	}

	@Override
	public void outAOperation(AOperation node) {
		isInsert = false;
	}

	@Override
	public void inANoun(ANoun node) {
		if (isInsert) {
			String id = node.getId().toString().trim();

			if (id.equals("into")) {
				isInto = true;
			} else if (id.equals("values")) {
				isValues = true;
			}
		}
	}

	@Override
	public void outANoun(ANoun node) {
		isInto = false;
		isValues = false;
	}

	@Override
	public void inAScalarRegTerm(AScalarRegTerm node) {
		if (isInto) {
			into.add(node.toString().trim());
		} else if (isValues) {
			// clean up param string "" -> param
			values.add(node.toString().trim().replace("\"", "").replace("<", "").replace(">", ""));
		}
	}

	public List getInto() {
		return into;
	}

	public List getValues() {
		return values;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy