org.hibernate.query.sqm.tree.AbstractSqmStatement Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
*/
package org.hibernate.query.sqm.tree;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.function.Supplier;
import org.hibernate.query.sqm.NodeBuilder;
import org.hibernate.query.sqm.SqmQuerySource;
import org.hibernate.query.sqm.tree.expression.JpaCriteriaParameter;
import org.hibernate.query.sqm.tree.expression.SqmJpaCriteriaParameterWrapper;
import org.hibernate.query.sqm.tree.expression.SqmParameter;
import org.hibernate.query.sqm.internal.ParameterCollector;
/**
* @author Steve Ebersole
*/
public abstract class AbstractSqmStatement extends AbstractSqmNode implements SqmStatement, ParameterCollector {
private final SqmQuerySource querySource;
public AbstractSqmStatement(
SqmQuerySource querySource,
NodeBuilder builder) {
super( builder );
this.querySource = querySource;
}
private Set> parameters;
@Override
public SqmQuerySource getQuerySource() {
return querySource;
}
@Override
public void addParameter(SqmParameter parameter) {
if ( parameters == null ) {
parameters = new HashSet<>();
}
parameters.add( parameter );
}
@Override
public Set> getSqmParameters() {
return parameters == null ? Collections.emptySet() : Collections.unmodifiableSet( parameters );
}
@Override
public ParameterResolutions resolveParameters() {
return new ParameterResolutions() {
@Override
public Set> getSqmParameters() {
return AbstractSqmStatement.this.getSqmParameters();
}
@Override
public Map, Supplier>> getJpaCriteriaParamResolutions() {
return Collections.emptyMap();
}
};
}
}