code: private void calcMinMax() throws IOException {
          hasMin = false;
          hasMax = false;
          if (excluded != null) {
              for (int i = 0; i < excluded.size(); i++) {
                  GeneralSubtree subtree = excluded.get(i);
                  if (subtree.getMinimum() != 0)
                      hasMin = true;
                  if (subtree.getMaximum() != -1)
                      hasMax = true;
              }
          }
  
          if (permitted != null) {
              for (int i = 0; i < permitted.size(); i++) {
                  GeneralSubtree subtree = permitted.get(i);
                  if (subtree.getMinimum() != 0)
                      hasMin = true;
                  if (subtree.getMaximum() != -1)
                      hasMax = true;
              }
          }
          minMaxValid = true;
      }
docs: Recalculate hasMin and hasMax flags.