📄 timeperiodvalues.java
字号:
} if (this.maxMiddleIndex >= 0) { final long s = getDataItem(this.minMiddleIndex).getPeriod().getStart().getTime(); final long e = getDataItem(this.minMiddleIndex).getPeriod().getEnd().getTime(); final long maxMiddle = s + (e - s) / 2; if (middle > maxMiddle) { this.maxMiddleIndex = index; } } else { this.maxMiddleIndex = index; } if (this.minEndIndex >= 0) { final long minEnd = getDataItem(this.minEndIndex).getPeriod().getEnd().getTime(); if (end < minEnd) { this.minEndIndex = index; } } else { this.minEndIndex = index; } if (this.maxEndIndex >= 0) { final long maxEnd = getDataItem(this.maxEndIndex).getPeriod().getEnd().getTime(); if (end > maxEnd) { this.maxEndIndex = index; } } else { this.maxEndIndex = index; } } /** * Recalculates the bounds for the collection of items. */ private void recalculateBounds() { for (int i = 0; i < this.data.size(); i++) { final TimePeriodValue tpv = (TimePeriodValue) this.data.get(i); updateBounds(tpv.getPeriod(), i); } } /** * Adds a new data item to the series. * * @param period the time period. * @param value the value. */ public void add(final TimePeriod period, final double value) { final TimePeriodValue item = new TimePeriodValue(period, value); add(item); } /** * Adds a new data item to the series. * * @param period the time period. * @param value the value. */ public void add(final TimePeriod period, final Number value) { final TimePeriodValue item = new TimePeriodValue(period, value); add(item); } /** * Updates (changes) the value of a data item. * * @param index the index of the data item to update. * @param value the new value. */ public void update(final int index, final Number value) { final TimePeriodValue item = getDataItem(index); item.setValue(value); fireSeriesChanged(); } /** * Deletes data from start until end index (end inclusive). * * @param start the index of the first period to delete. * @param end the index of the last period to delete. */ public void delete(final int start, final int end) { for (int i = 0; i <= (end - start); i++) { this.data.remove(start); } recalculateBounds(); fireSeriesChanged(); } /** * Tests the series for equality with another object. * * @param object the object. * * @return <code>true</code> or <code>false</code>. */ public boolean equals(final Object object) { if (object == this) { return true; } if (!super.equals(object)) { return false; } if (!(object instanceof TimePeriodValues)) { return false; } final TimePeriodValues tpvs = (TimePeriodValues) object; if (!getDomainDescription().equals(tpvs.getDomainDescription())) { return false; } if (!getRangeDescription().equals(tpvs.getRangeDescription())) { return false; } final int count = getItemCount(); if (count != tpvs.getItemCount()) { return false; } for (int i = 0; i < count; i++) { if (!getDataItem(i).equals(tpvs.getDataItem(i))) { return false; } } return true; } /** * Returns a hash code value for the object. * * @return the hashcode */ public int hashCode() { int result; result = (this.domain != null ? this.domain.hashCode() : 0); result = 29 * result + (this.range != null ? this.range.hashCode() : 0); result = 29 * result + this.data.hashCode(); result = 29 * result + this.minStartIndex; result = 29 * result + this.maxStartIndex; result = 29 * result + this.minMiddleIndex; result = 29 * result + this.maxMiddleIndex; result = 29 * result + this.minEndIndex; result = 29 * result + this.maxEndIndex; return result; } /** * Returns a clone of the collection. * <P> * Notes: * <ul> * <li> * no need to clone the domain and range descriptions, since String object is immutable; * </li> * <li> * we pass over to the more general method createCopy(start, end). * </li> * </ul> * * @return a clone of the time series. * * @throws CloneNotSupportedException if there is a cloning problem. */ public Object clone() throws CloneNotSupportedException { final Object clone = createCopy(0, getItemCount() - 1); return clone; } /** * Creates a new instance by copying a subset of the data in this collection. * * @param start the index of the first item to copy. * @param end the index of the last item to copy. * * @return A copy of a subset of the items. * * @throws CloneNotSupportedException if there is a cloning problem. */ public TimePeriodValues createCopy(final int start, final int end) throws CloneNotSupportedException { final TimePeriodValues copy = (TimePeriodValues) super.clone(); copy.data = new ArrayList(); if (this.data.size() > 0) { for (int index = start; index <= end; index++) { final TimePeriodValue item = (TimePeriodValue) this.data.get(index); final TimePeriodValue clone = (TimePeriodValue) item.clone(); try { copy.add(clone); } catch (SeriesException e) { System.err.println("TimePeriodValues.createCopy(): unable to add cloned item."); } } } return copy; } /** * Returns the index of the time period with the minimum start milliseconds. * * @return The index. */ public int getMinStartIndex() { return this.minStartIndex; } /** * Returns the index of the time period with the maximum start milliseconds. * * @return The index. */ public int getMaxStartIndex() { return this.maxStartIndex; } /** * Returns the index of the time period with the minimum middle milliseconds. * * @return The index. */ public int getMinMiddleIndex() { return this.minMiddleIndex; } /** * Returns the index of the time period with the maximum middle milliseconds. * * @return The index. */ public int getMaxMiddleIndex() { return this.maxMiddleIndex; } /** * Returns the index of the time period with the minimum end milliseconds. * * @return The index. */ public int getMinEndIndex() { return this.minEndIndex; } /** * Returns the index of the time period with the maximum end milliseconds. * * @return The index. */ public int getMaxEndIndex() { return this.maxEndIndex; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -