-
Notifications
You must be signed in to change notification settings - Fork 14
/
PluralQueryAttributeStrategy.java
35 lines (27 loc) · 1.2 KB
/
PluralQueryAttributeStrategy.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.oom.query;
import cz.cvut.kbss.jopa.model.metamodel.AbstractPluralQueryAttribute;
import cz.cvut.kbss.jopa.model.metamodel.EntityType;
import cz.cvut.kbss.jopa.model.query.TypedQuery;
import cz.cvut.kbss.jopa.utils.CollectionFactory;
import java.util.Collection;
import java.util.stream.Stream;
public class PluralQueryAttributeStrategy<X> extends QueryFieldStrategy<AbstractPluralQueryAttribute<? super X, ?, ?>, X> {
private final Class<?> elementType;
private final Collection<Object> values;
public PluralQueryAttributeStrategy(EntityType<X> et, AbstractPluralQueryAttribute<? super X, ?, ?> attribute) {
super(et, attribute);
this.values = CollectionFactory.createDefaultCollection(attribute.getCollectionType());
this.elementType = attribute.getElementType().getJavaType();
}
@Override
public void addValueFromTypedQuery(TypedQuery<?> typedQuery) {
Stream<?> queryResultList = typedQuery.getResultStream();
//TODO
}
@Override
public void buildInstanceFieldValue(Object instance) throws IllegalAccessException {
if (! values.isEmpty()) {
setValueOnInstance(instance, values);
}
}
}