import org.opendaylight.mdsal.binding.api.query.QueryResult;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeNode;
-import org.opendaylight.mdsal.dom.api.query.DOMQuery;
-import org.opendaylight.mdsal.dom.api.query.DOMQueryLike;
import org.opendaylight.mdsal.dom.spi.query.DOMQueryEvaluator;
import org.opendaylight.yangtools.yang.binding.ChildOf;
import org.opendaylight.yangtools.yang.binding.DataObject;
@Beta
public final class SimpleQueryExecutor implements QueryExecutor {
- private final BindingCodecTree codec;
private final NormalizedNode<?, ?> root;
- public SimpleQueryExecutor(final BindingCodecTree codec, final NormalizedNode<?, ?> root) {
- this.codec = requireNonNull(codec);
+ public SimpleQueryExecutor(final NormalizedNode<?, ?> root) {
this.root = requireNonNull(root);
}
@Override
public <T extends @NonNull DataObject> QueryResult<T> executeQuery(final QueryExpression<T> query) {
- checkArgument(query instanceof DOMQueryLike, "Unsupported expression %s", query);
- final DOMQuery domQuery = ((DOMQueryLike) query).asDOMQuery();
- return new DefaultQueryResult<>(codec, DOMQueryEvaluator.evaluateOnRoot(domQuery, root));
+ checkArgument(query instanceof DefaultQuery, "Unsupported expression %s", query);
+ final DefaultQuery<T> defaultQuery = (DefaultQuery<T>) query;
+ return defaultQuery.toQueryResult(DOMQueryEvaluator.evaluateOnRoot(defaultQuery.asDOMQuery(), root));
}
public static @NonNull Builder builder(final BindingCodecTree codec) {
@Override
public SimpleQueryExecutor build() {
- return new SimpleQueryExecutor(codec, rootBuilder.build());
+ return new SimpleQueryExecutor(rootBuilder.build());
}
}
}