class QueryTaskClientHelper {

    public QueryTaskClientHelper<T> setUpdatedSince(long documentSinceUpdateTimeMicros) {
        long nowMicrosUtc = Utils.getNowMicrosUtc();
        if (nowMicrosUtc < documentSinceUpdateTimeMicros) {
            throw new IllegalArgumentException(
                    "'documentSinceUpdateTimeMicros' must be in the past.");
        }

        Query query = Builder.create().addKindFieldClause(this.type)
                .addClause(createUpdatedSinceTimeRange(documentSinceUpdateTimeMicros)).build();
        QueryTask q = QueryTask.Builder.createDirectTask()
                .addOption(QueryOption.EXPAND_CONTENT)
                .addOption(QueryOption.INCLUDE_DELETED)
                .setResultLimit(DEFAULT_QUERY_RESULT_LIMIT)
                .setQuery(query).build();

        setQueryTask(q);
        return this;
    }

    private  QueryTaskClientHelper(Class<T> type);

}