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

net.sf.esfinge.querybuilder.jdbc.JDBCQueryRepresentation Maven / Gradle / Ivy

Go to download

The Esfinge QueryBuilder JDBC is the persistence framework for Esfinge QueryBuilder using JDBC.

The newest version!
package net.sf.esfinge.querybuilder.jdbc;

import java.util.Map;
import java.util.Set;

import net.sf.esfinge.querybuilder.methodparser.QueryRepresentation;
import net.sf.esfinge.querybuilder.utils.DynamicHelperObject;

public class JDBCQueryRepresentation implements QueryRepresentation {

	private String jdbcQuery;
	private boolean dynamic;
	private Map fixParameters;
	private JDBCQueryVisitor jdbcVisitor;

	public JDBCQueryRepresentation(String jdbcQuery, boolean dynamic,
			Map fixParameters,
			JDBCQueryVisitor jdbcVisitor) {
		this.jdbcQuery = jdbcQuery;
		this.dynamic = dynamic;
		this.fixParameters = fixParameters;
		this.jdbcVisitor = jdbcVisitor;
	}

	public boolean isDynamic() {

		return dynamic;
	}

	public Object getQuery() {

		return jdbcQuery;
	}

	public Object getQuery(Map params) {
		boolean isFirst = true;

		StringBuilder stQuery = new StringBuilder();
		stQuery = jdbcVisitor.getOriginalStQuery();

		stQuery.delete(0, stQuery.length());
		stQuery.append("select ");
		stQuery.append(jdbcVisitor.getSqlUtils().getFieldsEntities());
		stQuery.append(" from ");
		stQuery.append(jdbcVisitor.getSqlUtils().getChildEntities());

		for (DynamicHelperObject dynamic : jdbcVisitor
				.getListOfDynamicsObjetcs()) {

			dynamic.updateValues(params);

			if (dynamic.isAddField()) {

				if (isFirst) {
					stQuery.append(" where ");
					isFirst = false;

				} else {
					stQuery.append(" and ");
				}

				stQuery.append(dynamic.getPropertyName() + " ");
				stQuery.append(dynamic.getOperator() + " ");
				stQuery.append(dynamic.getValueOfProperty());

			}

		}

		if (jdbcVisitor.getSqlUtils().haveJoinColumn()) {

			if (stQuery.toString().contains("where")) {
				stQuery.append(" and ");
			} else {
				stQuery.append(" where ");
			}

			stQuery.append(jdbcVisitor.getSqlUtils().getJoinExpressions());

		}

		return jdbcVisitor.getStQuery();
	}

	public Set getFixParameters() {

		return fixParameters.keySet();
	}

	public Object getFixParameterValue(String param) {

		return fixParameters.get(param);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy