本文整理汇总了Java中com.couchbase.lite.QueryEnumerator.hasNext方法的典型用法代码示例。如果您正苦于以下问题:Java QueryEnumerator.hasNext方法的具体用法?Java QueryEnumerator.hasNext怎么用?Java QueryEnumerator.hasNext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.couchbase.lite.QueryEnumerator
的用法示例。
在下文中一共展示了QueryEnumerator.hasNext方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: loadInBackground
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
@Override
public List<QueryRow> loadInBackground() {
try {
List<QueryRow> ret = new ArrayList<QueryRow>();
QueryEnumerator enumerator = query.run();
if (enumerator != null) {
while (enumerator.hasNext()) {
QueryRow row = enumerator.next();
ret.add(row);
}
}
return ret;
} catch (CouchbaseLiteException e) {
throw new RuntimeException(e);
}
}
示例2: getContactDocumentByEmail
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
public Document getContactDocumentByEmail(String email) {
Query query = contactView.createQuery();
query.setStartKey(email);
query.setEndKey(email);
QueryEnumerator enumerator;
try {
enumerator = query.run();
} catch (CouchbaseLiteException e) {
throw new RuntimeException(e);
}
Document ret = null;
if (enumerator.hasNext()) {
QueryRow row = enumerator.next();
ret = row.getDocument();
}
return ret;
}
示例3: getMessagesByGame
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
public List<Document> getMessagesByGame(String modelId) {
Query query = messageByGameView.createQuery();
query.setStartKey(modelId);
query.setEndKey(modelId);
QueryEnumerator enumerator;
try {
enumerator = query.run();
} catch (CouchbaseLiteException e) {
throw new RuntimeException(e);
}
List<Document> ret = new ArrayList<>();
while (enumerator.hasNext()) {
QueryRow row = enumerator.next();
ret.add(row.getDocument());
}
Collections.sort(ret, new Comparator<Document>() {
@Override
public int compare(Document left, Document right) {
return ((String) left.getProperty("id")).compareTo((String) right.getProperty("id"));
}
});
return ret;
}
示例4: getGameDocumentByModelId
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
public Document getGameDocumentByModelId(String id) {
Query query = gameView.createQuery();
query.setStartKey(id);
query.setEndKey(id);
query.setEndKey(id);
QueryEnumerator enumerator;
try {
enumerator = query.run();
} catch (CouchbaseLiteException e) {
throw new RuntimeException(e);
}
Document ret = null;
if (enumerator.hasNext()) {
QueryRow row = enumerator.next();
ret = row.getDocument();
}
return ret;
}
示例5: searchPostsByAuthor
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
@Override
protected List<Post> searchPostsByAuthor(final Author author) {
List<Post> postList = new ArrayList<>();
try {
com.couchbase.lite.View viewsByAuthor = couchDbPost.getView("viewsByAuthor");
viewsByAuthor.setMap(new Mapper() {
@Override
public void map(Map<String, Object> document, Emitter emitter) {
emitter.emit(author.getKey(), document);
}
}, "1.0");
Query query = viewsByAuthor.createQuery();
List<Object> keyArray = new ArrayList<>();
keyArray.add(author.getKey());
query.setKeys(keyArray);
QueryEnumerator rowEnum = query.run();
for (; rowEnum.hasNext(); ) {
QueryRow row = rowEnum.next();
postList.add(fillPost(row.getDocument(), row.getDocumentId()));
}
} catch (Exception e){
e.printStackTrace();
}
return postList;
}
示例6: getAllDocumentIds
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
List<String> getAllDocumentIds(String databaseId) {
Timber.d("getAllDocumentIds: %s", databaseId);
ManagerOptions managerOptions = new ManagerOptions();
managerOptions.setReadOnly(true);
DatabaseOptions databaseOptions = new DatabaseOptions();
databaseOptions.setReadOnly(true);
com.couchbase.lite.Database database = null;
try {
// TODO: Create LiveQuery on this?
// TODO: Open manager/database and cache result - could be expensive operation
Manager manager = new Manager(new AndroidContext(mContext), managerOptions);
database = manager.openDatabase(databaseId, databaseOptions);
List<String> docIds = new ArrayList<>();
QueryEnumerator result = database.createAllDocumentsQuery().run();
while (result.hasNext()) {
QueryRow row = result.next();
docIds.add(row.getDocumentId());
}
return docIds;
} catch (Exception e) {
return Collections.emptyList();
} finally {
if (database != null) {
database.close();
}
}
}
示例7: delete
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
private void delete() {
try {
QueryEnumerator en = database.createAllDocumentsQuery().run();
while (en.hasNext()) {
QueryRow row = en.next();
row.getDocument().delete();
}
} catch (CouchbaseLiteException e) {
throw new RuntimeException("Cannot delete object from CouchBase Lite.");
}
}
示例8: deleteAll
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
private void deleteAll() throws CouchbaseLiteException {
// query all documents, mark them as deleted
Query query = database.createAllDocumentsQuery();
QueryEnumerator result = query.run();
database.beginTransaction();
while (result.hasNext()) {
QueryRow row = result.next();
row.getDocument().purge();
}
database.endTransaction(true);
}
示例9: getContactAdapter
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
public ArrayAdapter<Map<String, Object>> getContactAdapter() {
if (adapter == null) {
QueryEnumerator runner = null;
try {
runner = dataService.getEffectiveContactQuery().run();
} catch (CouchbaseLiteException e) {
throw new RuntimeException(e);
}
adapter = new ArrayAdapter<Map<String, Object>>(this,
android.R.layout.simple_spinner_item,
android.R.id.text1) {
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
View view = convertView;
if (view == null) {
view = super.getView(position, convertView, parent);
}
Map<String, Object> item = getItem(position);
((TextView) view.findViewById(android.R.id.text1)).setText(item.get("email").toString());
return view;
};
@Override
public View getDropDownView(int position,
View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = super.getDropDownView(position, convertView, parent);
}
Map<String, Object> item = getItem(position);
((TextView) view.findViewById(android.R.id.text1)).setText(item.get("email").toString());
return view; //TODO Gotta add the dropdowns to a scrollable view different than a ListView because there's almost no way of finding the pos and item in the father to
}
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
while (runner.hasNext()) {
adapter.add(runner.next().getDocument().getProperties());
}
}
return adapter;
}
示例10: indexedStringEntityQueriesRun
import com.couchbase.lite.QueryEnumerator; //导入方法依赖的package包/类
private void indexedStringEntityQueriesRun(View indexedStringView, int count)
throws CouchbaseLiteException {
// create entities
String[] fixedRandomStrings = StringGenerator.createFixedRandomStrings(count);
database.beginTransaction();
for (int i = 0; i < count; i++) {
Document entity = database.getDocument(String.valueOf(i));
Map<String, Object> properties = new HashMap<>();
properties.put("indexedString", fixedRandomStrings[i]);
entity.putProperties(properties);
}
database.endTransaction(true);
log("Built and inserted entities.");
// query for entities by indexed string at random
int[] randomIndices = StringGenerator.getFixedRandomIndices(getQueryCount(), count - 1);
// clear the document cache to force loading properties from the database
database.clearDocumentCache();
startClock();
for (int i = 0; i < getQueryCount(); i++) {
int nextIndex = randomIndices[i];
List<Object> keyToQuery = new ArrayList<>(1);
keyToQuery.add(fixedRandomStrings[nextIndex]);
Query query = indexedStringView.createQuery();
query.setKeys(keyToQuery);
QueryEnumerator result = query.run();
while (result.hasNext()) {
QueryRow row = result.next();
//noinspection unused
Document document = row.getDocument();
}
}
stopClock(Benchmark.Type.QUERY_INDEXED);
// delete all entities
deleteAll();
log("Deleted all entities.");
}