class QueryObjectModelFactoryFacade implements QueryObjectModelFactory {

    @Override
    public QueryObjectModel createQuery(final Source source,
                                        final Constraint constraint,
                                        final Ordering[] orderings,
                                        final Column[] columns) throws RepositoryException {
        QueryObjectModel internal = delegate.createQuery(source, constraint, orderings, columns);
        return new QueryObjectModelFacade<>(internal, session);
    }

    public  QueryObjectModelFactoryFacade(@NotNull final QueryObjectModelFactory delegate, @NotNull final SessionFacade<S> session);

}