* org.onap.aaf
* ===========================================================================
* Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
* ===========================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
package org.onap.aaf.auth.batch.helpers;
public class CQLBatchLoop {
- private static final int MAX_CHARS = (50 * 1024)/2;
-
- private final CQLBatch cqlBatch;
- private final int maxBatch;
- private final StringBuilder sb;
- private final boolean dryRun;
- private int i;
- private int total;
- private int batches;
- private final StringBuilder current;
- private boolean showProgress;
-
- public CQLBatchLoop(CQLBatch cb, int max, boolean dryRun) {
- cqlBatch = cb;
- i=0;
- total = 0;
- maxBatch = max;
- sb = cqlBatch.begin();
- current = new StringBuilder();
- this.dryRun = dryRun;
- showProgress = false;
- }
+ private static final int MAX_CHARS = (50 * 1024)/2;
- 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) {
- if(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 final CQLBatch cqlBatch;
+ private final int maxBatch;
+ private final StringBuilder sb;
+ private final boolean dryRun;
+ private int i;
+ private int total;
+ private int batches;
+ private final StringBuilder current;
+ private boolean showProgress;
- private void incBatch() {
- ++batches;
- if(showProgress) {
- System.out.print('.');
- if(batches%70==0) {
- System.out.println();
- }
- }
- }
+ public CQLBatchLoop(CQLBatch cb, int max, boolean dryRun) {
+ cqlBatch = cb;
+ i=0;
+ total = 0;
+ maxBatch = max;
+ sb = cqlBatch.begin();
+ current = new StringBuilder();
+ this.dryRun = dryRun;
+ showProgress = false;
+ }
- public int total() {
- return total;
- }
-
- public int batches() {
- return batches;
- }
+ 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)) {
- public void reset() {
- total = 0;
- batches = 0;
- i = -1;
- }
-
- public String toString() {
- return cqlBatch.toString();
- }
+ 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();
+ }
}