public final class CustomBreakdown extends DatedBreakdown implements java.io.Serializable
DatedBreakdown used to specify that degree days should
be broken down into the custom date ranges specified e.g. to match
the dates of your energy-usage records.Instances of this class are immutable. You can safely reuse them and call them from multiple threads at once.
| Constructor and Description |
|---|
CustomBreakdown(DayRanges dayRanges)
Constructs a
CustomBreakdown object that specifies degree
days broken down to match the DayRanges passed in. |
| Modifier and Type | Method and Description |
|---|---|
DayRanges |
dayRanges()
Returns the non-null
DayRanges that specifies the dates that
each degree-day figure should cover. |
DayRange |
getFullRangeOrNull(DayRange availableDataRange)
Returns the range of days that this breakdown would cover given source
data covering
availableDataRange, or null if
availableDataRange would not be enough for this breakdown. |
MaybeEmptyDayRanges |
toDayRanges(DayRange availableDataRange)
Returns the breakdown in terms of the day ranges that would constitute it
given source data covering
availableDataRange. |
java.lang.String |
toString()
Returns a non-null, non-empty string representation of this object for logging and debugging purposes.
|
CustomBreakdown |
withAllowPartialLatest(boolean allowPartialLatest)
Returns a
CustomBreakdown with the same dayRanges()
as this, but with the DatedBreakdown.allowPartialLatest() property
set to the specified value. |
allowPartialLatest, custom, daily, monthly, monthly, weekly, yearly, yearlypublic CustomBreakdown(DayRanges dayRanges)
CustomBreakdown object that specifies degree
days broken down to match the DayRanges passed in.dayRanges - specifying the dates that each degree-day figure should
cover (typically matching the dates of your energy-usage records).
Cannot be null.java.lang.NullPointerException - if dayRanges is
null.public DayRanges dayRanges()
DayRanges that specifies the dates that
each degree-day figure should cover.public CustomBreakdown withAllowPartialLatest(boolean allowPartialLatest)
CustomBreakdown with the same dayRanges()
as this, but with the DatedBreakdown.allowPartialLatest() property
set to the specified value.
The allowPartialLatest property makes it possible to fetch
time-series data
(like hourly temperature data) that includes
time-series-data
values for the current (incomplete) day. It also makes it possible to
fetch custom degree-day data that includes a
DatedDataValue for the latest specified
day range that is partially (but not yet fully) available. See
DatedBreakdown.allowPartialLatest() for more on how it works.
allowPartialLatest - true to specify that the latest
available day range (of the dayRanges() specified) can be
partially filled (i.e. incomplete), or false if the
latest available day range must be complete (the default
behaviour).DatedBreakdown.allowPartialLatest()public MaybeEmptyDayRanges toDayRanges(DayRange availableDataRange)
availableDataRange.
If you call fullRangeOrNull() on the return value, you'll get the same result that
you'd get by calling getFullRangeOrNull(availableDataRange) on this object. Essentially this
method is a more detailed version of getFullRangeOrNull that
makes sense for dated breakdowns, which translate to real ranges of days
on a calendar (unlike average breakdowns which are broken down into
months of an "average year" rather than applying to a real calendar).
toDayRanges in class DatedBreakdownavailableDataRange - the range of temperature data available (or the
available range of daily degree-day data if summing daily degree
days into a different breakdown). Cannot be null.java.lang.NullPointerException - if availableDataRange is
null.public DayRange getFullRangeOrNull(DayRange availableDataRange)
availableDataRange, or null if
availableDataRange would not be enough for this breakdown.getFullRangeOrNull in class BreakdownavailableDataRange - the range of temperature data available (or the
available range of daily degree-day data if summing daily degree
days into a different breakdown). Cannot be null.java.lang.NullPointerException - if availableDataRange is
null.public java.lang.String toString()
The exact details of the representation are unspecified and subject to change.
toString in class java.lang.Object
See www.degreedays.net/api/ for more about the Degree Days.net API.
You can sign up for a Degree Days.net API account and read the integration guide that is useful and applicable whether you are using Java or not.