+ public CQLBatchLoop showProgress() {
+ showProgress = true;
+ return this;
+ }
+ /**
+ * Assume this is another line in the Batch
+ * @return
+ */
+ public StringBuilder inc() {
+ if((i>=maxBatch || current.length() + sb.length() > MAX_CHARS) && (i > 0)) {
+
+ cqlBatch.execute(dryRun);
+ i = -1;
+ incBatch();
+ }
+ if(i < 0) {
+ cqlBatch.begin();
+ i = 0;
+ }
+ if(current.length() > MAX_CHARS) {
+ cqlBatch.singleExec(current, dryRun);
+ } else {
+ sb.append(current);
+ }
+ current.setLength(0);
+ ++i;
+ ++total;
+ return current;
+ }
+
+ /**
+ * Close up when finished.
+ */
+ public void flush() {
+ if(current.length() + sb.length() > MAX_CHARS) {
+ if(i > 0) {
+ cqlBatch.execute(dryRun);
+ incBatch();
+ }
+ if(current.length() > 0) {
+ cqlBatch.singleExec(current, dryRun);
+ current.setLength(0);
+ incBatch();
+ }
+ } else {
+ if(i < 0) {
+ cqlBatch.begin();
+ }
+ sb.append(current);
+ current.setLength(0);
+ cqlBatch.execute(dryRun);
+ incBatch();
+ }
+ i = -1;
+ }
+
+ private void incBatch() {
+ ++batches;
+ if(showProgress) {
+ System.out.print('.');
+ if(batches%70 == 0) {
+ System.out.println();
+ }
+ }
+ }
+
+ public int total() {
+ return total;
+ }
+
+ public int batches() {
+ return batches;
+ }
+
+ public void reset() {
+ total = 0;
+ batches = 0;
+ i = -1;
+ }
+
+ public String toString() {
+ return cqlBatch.toString();
+ }