docs: private int getIntHeader(final CachedResponse pCached, final String pHeaderName, final String pDirective) {
          String[] headerValues = pCached.getHeaderValues(pHeaderName);
          int value = -1;
  
          if (headerValues != null) {
              for (String headerValue : headerValues) {
                  if (pDirective == null) {
                      if (!StringUtil.isEmpty(headerValue)) {
                          value = Integer.parseInt(headerValue);
                      }
                      break;
                  }
                  else {
                      int start = headerValue.indexOf(pDirective);
  
                      // Directive found
                      if (start >= 0) {
  
                          int end = headerValue.lastIndexOf(',');
                          if (end < start) {
                              end = headerValue.length();
                          }
  
                          headerValue = headerValue.substring(start, end);
  
                          if (!StringUtil.isEmpty(headerValue)) {
                              value = Integer.parseInt(headerValue);
                          }
  
                          break;
                      }
                  }
              }
          }
  
          return value;
      }