code: public Criteria deriveTransactionWide() {
          Criteria ret = new Criteria();
          ret.setStartTime(startTime);
          ret.setEndTime(endTime);
          ret.setProperties(getProperties().stream().filter(p -> p.getName().equals(Constants.PROP_PRINCIPAL))
                  .collect(Collectors.toSet()));
          ret.setTransaction(transaction);
          return ret;
      }
docs: This method returns the transaction wide version of the current criteria.
  
  @return The transaction wide version