code: public void manipulate(Collection<String> columnCollection) {
  
          final List<String> cloneOfColumnCollection = new ArrayList<String>(columnCollection);
  
          if (mIncludeColumnNameList.size() > 0 && mExcludeColumnNameList.size() > 0) {
              throw new RuntimeException("You cannot set both include and exclude column names.");
          }
  
          if (mIncludeColumnNameList.size() > 0) {
  
              log("#manipulate include mode includeColumnNameList=" + mIncludeColumnNameList);
              // include mode
              for (String columnName : cloneOfColumnCollection) {
  
                  if (mIncludeColumnNameList.contains(columnName)) {
                      // if contain, ok
                      log("#manipulate include mode columnName '" + columnName + "' hold");
                  } else {
                      // if not contain,then delete
                      columnCollection.remove(columnName);
                  }
              }
          }
  
          if (mExcludeColumnNameList.size() > 0) {
              // exclude mode
              log("#manipulate exclude mode excludeColumnNameList=" + mExcludeColumnNameList);
              for (String excludeColumnName : mExcludeColumnNameList) {
  
                  if (cloneOfColumnCollection.contains(excludeColumnName)) {
                      columnCollection.remove(excludeColumnName);
                      log("#manipulate exclude mode columnName '" + excludeColumnName + "' skipped");
                  } else {
  
                  }
              }
          }
      }
docs: Edit(mainly remove columnName) column collection to fit the
  Include/Exclude status
  
  @param columnCollection