code: public final PeriodList normalise() {
          Period prevPeriod = null;
          Period period;
          final PeriodList newList = new PeriodList(isUtc());
          if (timezone != null) {
              newList.setTimeZone(timezone);
          }
          boolean normalised = false;
          for (Period period1 : this) {
              period = period1;
              if (period.isEmpty()) {
                  period = prevPeriod;
                  normalised = true;
              } else if (prevPeriod != null) {
                  // ignore periods contained by other periods..
                  if (prevPeriod.contains(period)) {
                      period = prevPeriod;
                      normalised = true;
                  }
                  // combine intersecting periods..
                  else if (prevPeriod.intersects(period)) {
                      period = prevPeriod.add(period);
                      normalised = true;
                  }
                  // combine adjacent periods..
                  else if (prevPeriod.adjacent(period)) {
                      period = prevPeriod.add(period);
                      normalised = true;
                  } else {
                      // if current period is recognised as distinct
                      // from previous period, add the previous period
                      // to the list..
                      newList.add(prevPeriod);
                  }
              }
              prevPeriod = period;
          }
          // remember to add the last period to the list..
          if (prevPeriod != null) {
              newList.add(prevPeriod);
          }
          // only return new list if normalisation
          // has ocurred..
          if (normalised) {
              return newList;
          }
          else {
              return this;
  	}
      }
docs: Returns a normalised version of this period list. Normalisation includes
  combining overlapping periods, removing periods contained by other
  periods, combining adjacent periods, and removing periods that consume
  no time. NOTE: If the period list is
  already normalised then this period list is returned.
  
  @return a period list