public static void batchDelete()

in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/util/TablestoreHelper.java [513:574]


    public static <T> void batchDelete(SyncClient client, String tableName, Iterator<T> iterator) {
        List<RowChange> rowChanges = new ArrayList<>();
        while (iterator.hasNext()) {
            T item = iterator.next();
            if (item instanceof Session) {
                Session session = (Session) item;
                rowChanges.add(
                    new RowDeleteChange(
                        tableName,
                        PrimaryKeyBuilder.createPrimaryKeyBuilder()
                            .addPrimaryKeyColumn(Session.SESSION_USER_ID, PrimaryKeyValue.fromString(session.getUserId()))
                            .addPrimaryKeyColumn(Session.SESSION_SESSION_ID, PrimaryKeyValue.fromString(session.getSessionId()))
                            .build()
                    )
                );
            } else if (item instanceof Message) {
                Message message = (Message) item;
                rowChanges.add(
                    new RowDeleteChange(
                        tableName,
                        PrimaryKeyBuilder.createPrimaryKeyBuilder()
                            .addPrimaryKeyColumn(Message.MESSAGE_SESSION_ID, PrimaryKeyValue.fromString(message.getSessionId()))
                            .addPrimaryKeyColumn(Message.MESSAGE_CREATE_TIME, PrimaryKeyValue.fromLong(message.getCreateTime()))
                            .addPrimaryKeyColumn(Message.MESSAGE_MESSAGE_ID, PrimaryKeyValue.fromString(message.getMessageId()))
                            .build()
                    )
                );
            } else if (item instanceof Document) {
                Document document = (Document) item;
                rowChanges.add(
                    new RowDeleteChange(
                        tableName,
                        PrimaryKeyBuilder.createPrimaryKeyBuilder()
                            .addPrimaryKeyColumn(Document.DOCUMENT_DOCUMENT_ID, PrimaryKeyValue.fromString(document.getDocumentId()))
                            .addPrimaryKeyColumn(Document.DOCUMENT_TENANT_ID, PrimaryKeyValue.fromString(document.getTenantId()))
                            .build()
                    )
                );
            } else if (item instanceof DocumentHit) {
                DocumentHit documentHit = (DocumentHit) item;
                Document document = documentHit.getDocument();
                rowChanges.add(
                    new RowDeleteChange(
                        tableName,
                        PrimaryKeyBuilder.createPrimaryKeyBuilder()
                            .addPrimaryKeyColumn(Document.DOCUMENT_DOCUMENT_ID, PrimaryKeyValue.fromString(document.getDocumentId()))
                            .addPrimaryKeyColumn(Document.DOCUMENT_TENANT_ID, PrimaryKeyValue.fromString(document.getTenantId()))
                            .build()
                    )
                );
            } else {
                throw Exceptions.illegalArgument("unsupported item type:%s, detail:%s", item.getClass(), item);
            }
            if (rowChanges.size() == 200) {
                batchWrite(client, rowChanges);
                rowChanges.clear();
            }
        }
        if (!rowChanges.isEmpty()) {
            batchWrite(client, rowChanges);
        }
    }