@Override
  public boolean equals(Object object) {
    if (this == object) {
      return true;
    }

    if (object == null) {
      return false;
    }

    if (getClass() != object.getClass()) {
      return false;
    }

    DimensionItem other = (DimensionItem) object;

    if (dimension == null) {
      if (other.dimension != null) {
        return false;
      }
    } else if (!dimension.equals(other.dimension)) {
      return false;
    }

    if (item == null) {
      if (other.item != null) {
        return false;
      }
    } else if (!item.equals(other.item)) {
      return false;
    }

    return true;
  }
 @Override
 public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + ((dimension == null) ? 0 : dimension.hashCode());
   result = prime * result + ((item == null) ? 0 : item.hashCode());
   return result;
 }