Example usage for com.amazonaws.services.simpledb.model SelectRequest withNextToken

List of usage examples for com.amazonaws.services.simpledb.model SelectRequest withNextToken

Introduction

In this page you can find the example usage for com.amazonaws.services.simpledb.model SelectRequest withNextToken.

Prototype


public SelectRequest withNextToken(String nextToken) 

Source Link

Document

A string informing Amazon SimpleDB where to start the next list of ItemNames.

Usage

From source file:br.com.ingenieux.mojo.simpledb.cmd.DumpDomainCommand.java

License:Apache License

public boolean execute(DumpDomainContext context) throws Exception {
    SelectRequest selectRequest = new SelectRequest(String.format("SELECT * FROM %s", context.getDomain()));
    SelectResult selectResult = service.select(selectRequest);

    ArrayNode rootNode = mapper.createArrayNode();

    while (!selectResult.getItems().isEmpty()) {
        for (Item item : selectResult.getItems())
            appendResult(rootNode, item);

        if (isBlank(selectResult.getNextToken()))
            break;

        selectResult = service.select(selectRequest.withNextToken(selectResult.getNextToken()));
    }//from   www . ja v  a  2 s . c om

    FileWriter writer = new FileWriter(context.getOutputFile());

    writeData(rootNode, writer);

    IOUtil.close(writer);

    return false;
}

From source file:com.netflix.simianarmy.aws.SimpleDBRecorder.java

License:Apache License

/**
 * Find events.//ww w  . ja  v a 2 s .c om
 *
 * @param queryMap
 *            the query map
 * @param after
 *            the start time to query for all events after
 * @return the list
 */
protected List<Event> findEvents(Map<String, String> queryMap, long after) {
    StringBuilder query = new StringBuilder(
            String.format("select * from `%s` where region = '%s'", domain, region));
    for (Map.Entry<String, String> pair : queryMap.entrySet()) {
        query.append(String.format(" and %s = '%s'", pair.getKey(), pair.getValue()));
    }
    query.append(String.format(" and eventTime > '%d'", after));
    // always return with most recent record first
    query.append(" order by eventTime desc");

    List<Event> list = new LinkedList<Event>();
    SelectRequest request = new SelectRequest(query.toString());
    request.setConsistentRead(Boolean.TRUE);

    SelectResult result = new SelectResult();
    do {
        result = sdbClient().select(request.withNextToken(result.getNextToken()));
        for (Item item : result.getItems()) {
            Map<String, String> fields = new HashMap<String, String>();
            Map<String, String> res = new HashMap<String, String>();
            for (Attribute attr : item.getAttributes()) {
                if (Keys.KEYSET.contains(attr.getName())) {
                    res.put(attr.getName(), attr.getValue());
                } else {
                    fields.put(attr.getName(), attr.getValue());
                }
            }
            String eid = res.get(Keys.id.name());
            String ereg = res.get(Keys.region.name());
            MonkeyType monkeyType = valueToEnum(MonkeyType.class, res.get(Keys.monkeyType.name()));
            EventType eventType = valueToEnum(EventType.class, res.get(Keys.eventType.name()));
            long eventTime = Long.parseLong(res.get(Keys.eventTime.name()));
            list.add(new BasicRecorderEvent(monkeyType, eventType, ereg, eid, eventTime).addFields(fields));
        }
    } while (result.getNextToken() != null);
    return list;
}