code: public StructuredQueryDefinition temporalPeriodRange(Axis[] axes, TemporalOperator operator,
                                                         Period[] periods, String... options)
    {
      if ( axes == null ) throw new IllegalArgumentException("axes cannot be null");
      if ( operator == null ) throw new IllegalArgumentException("operator cannot be null");
      if ( periods == null ) throw new IllegalArgumentException("periods cannot be null");
      return new TemporalPeriodRangeQuery(axes, operator, periods, options);
    }
docs: Matches documents that have a value in the specified axis that matches the specified
  periods using the specified operator.
  @param axes the set of axes of document temporal values used to determine which documents have
  values that match this query
  @param operator the operator used to determine if values in the axis match the specified period
  @param periods the periods considered using the operator.  When multiple periods are specified,
  the query matches if a value matches any period.
  @param options string options from the list for
  <a href="http://docs.marklogic.com/cts:period-range-query">cts:period-range-query calls</a>
  @return a query to filter by comparing a temporal axis to period values
  @see <a href="http://docs.marklogic.com/cts:period-range-query">cts:period-range-query</a>
  @see <a href="http://docs.marklogic.com/guide/search-dev/structured-query#id_91434">
  Structured Queries: period-range-query</a>