-
Notifications
You must be signed in to change notification settings - Fork 14
/
CriteriaFactoryImpl.java
35 lines (27 loc) · 1.27 KB
/
CriteriaFactoryImpl.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package cz.cvut.kbss.jopa.query.criteria;
import cz.cvut.kbss.jopa.model.CriteriaQueryImpl;
import cz.cvut.kbss.jopa.model.metamodel.EntityType;
import cz.cvut.kbss.jopa.model.query.criteria.CriteriaModel;
import cz.cvut.kbss.jopa.model.query.criteria.CriteriaQuery;
import cz.cvut.kbss.jopa.sessions.CriteriaFactory;
import cz.cvut.kbss.jopa.sessions.UnitOfWorkImpl;
public class CriteriaFactoryImpl implements CriteriaFactory {
private final UnitOfWorkImpl uow;
public CriteriaFactoryImpl(UnitOfWorkImpl uow) {
this.uow = uow;
}
@Override
public <T> CriteriaModel<T> getCriteriaQueryModel(Class<T> queryModelType) {
EntityType<T> entityMetamodel = uow.getMetamodel().entity(queryModelType);
return new CriteriaModelImpl<T>(entityMetamodel, queryModelType, uow);
}
@Override
public <X> CriteriaQuery<X> from(Class<X> resultClass) {
EntityType<X> entityMetamodel = uow.getMetamodel().entity(resultClass);
return new CriteriaQueryImpl<X>(new CriteriaQueryHolder<X>(entityMetamodel, resultClass));
}
@Override
public <X> CriteriaQuery<X> from(EntityType<X> entityMetamodel) {
return new CriteriaQueryImpl<X>(new CriteriaQueryHolder<X>(entityMetamodel, entityMetamodel.getBindableJavaType()));
}
}