
net.sf.esfinge.querybuilder.jpa1.JPAQueryRepresentation Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of querybuilder-jpa1-local Show documentation
Show all versions of querybuilder-jpa1-local Show documentation
The Esfinge QueryBuilder JPA1 is the persistence framework for Esfinge QueryBuilder using JPA1.
The newest version!
package net.sf.esfinge.querybuilder.jpa1;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.apache.el.lang.EvaluationContext;
import net.sf.esfinge.querybuilder.methodparser.QueryRepresentation;
import net.sf.esfinge.querybuilder.utils.ELUtils;
public class JPAQueryRepresentation implements QueryRepresentation{
private String jpaQuery;
private boolean dynamic;
private Map fixParameters;
public JPAQueryRepresentation(String jpaQuery, boolean dynamic,
Map fixParameters) {
this.jpaQuery = jpaQuery;
this.dynamic = dynamic;
this.fixParameters = fixParameters;
}
@Override
public boolean isDynamic() {
return dynamic;
}
@Override
public Object getQuery() {
return jpaQuery;
}
@Override
public Object getQuery(Map params) {
Map funcMap = new HashMap();
for(Method m : ELFunctions.class.getMethods()){
funcMap.put(m.getName(),m);
}
Map propMap = new HashMap();
propMap.put("map", params);
for(String key : params.keySet()){
propMap.put(key, params.get(key));
}
EvaluationContext ctx = ELUtils.buildEvaluationContext(funcMap, propMap);
return ELUtils.evaluateExpression(ctx, getQuery().toString());
}
@Override
public Set getFixParameters() {
return fixParameters.keySet();
}
@Override
public Object getFixParameterValue(String param) {
return fixParameters.get(param);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy