/**
  * Tests the series for equality with another object.
  *
  * @param obj the object (<code>null</code> permitted).
  * @return <code>true</code> or <code>false</code>.
  */
 @Override
 public boolean equals(Object obj) {
   if (obj == this) {
     return true;
   }
   if (!(obj instanceof TimePeriodValues)) {
     return false;
   }
   if (!super.equals(obj)) {
     return false;
   }
   TimePeriodValues that = (TimePeriodValues) obj;
   if (!ObjectUtilities.equal(this.getDomainDescription(), that.getDomainDescription())) {
     return false;
   }
   if (!ObjectUtilities.equal(this.getRangeDescription(), that.getRangeDescription())) {
     return false;
   }
   int count = getItemCount();
   if (count != that.getItemCount()) {
     return false;
   }
   for (int i = 0; i < count; i++) {
     if (!getDataItem(i).equals(that.getDataItem(i))) {
       return false;
     }
   }
   return true;
 }