public static final class DataSets.Builder
extends java.lang.Object
DataSets
objects
e.g. for testing purposes.Instances of this builder class are designed for single-threaded use only. It's fine to create and use instances in multiple concurrent threads, but, in the absence of external synchronization, the use of each individual builder instance should be restricted to one thread only.
Constructor and Description |
---|
Builder(DataSpecs dataSpecs)
Note that this constructor would only usually be called by a
ResponseParser , and that's not an interface that you are
likely to need to deal with unless you are replacing parts of the
framework. |
Modifier and Type | Method and Description |
---|---|
DataSets.Builder |
add(DataSpec dataSpec,
DataSet dataSet)
|
DataSets.Builder |
add(java.lang.String key,
DataSet dataSet)
|
DataSets.Builder |
addFailure(DataSpec dataSpec,
Failure failure)
|
DataSets.Builder |
addFailure(java.lang.String key,
Failure failure)
|
DataSets |
build()
Returns a new
DataSets object created according to the
specification held by this builder. |
public Builder(DataSpecs dataSpecs)
ResponseParser
, and that's not an interface that you are
likely to need to deal with unless you are replacing parts of the
framework.dataSpecs
- should be the DataSpecs
object from the
LocationDataRequest
that led to this response. You can
also pass in null (and it's possible that you might want to if
you're writing test cases for your own implementation of
ResponseParser
), but then you won't be able to use the
methods of DataSets
that take a DataSpec
as an argument.public DataSets.Builder add(java.lang.String key, DataSet dataSet)
DataSpec
in
the request and a DataSet
from the response.key
- a string key from the XML response, associated with a
particular DataSpec
from the original XML request. If
this builder was created with a DataSpecs
object
(which it typically would be), the key must match a key in
that DataSpecs
object. If you're parsing a
genuine XML response the keys will match automatically, but,
if you're setting up test objects, you can create a
DataSpecs
with your own custom keys for full control.
Cannot be null, cannot be empty, cannot have more than 60
characters, and cannot contain characters outside of
[-_.a-zA-Z0-9]
.dataSet
- the non-null DataSet
associated with
key
.this
, for method chaining.java.lang.NullPointerException
- if key
or
dataSet
is null
.java.lang.IllegalArgumentException
- if key
does not match
the required specification, if key is not recognized as one
from the original request (assuming this object has access to
the DataSpecs
to check), or if an item has already
been added with key
.public DataSets.Builder addFailure(java.lang.String key, Failure failure)
DataSpec
in
the request and a Failure
from the response.key
- a string key from the XML response, associated with a
particular DataSpec
from the original XML request. If
this builder was created with a DataSpecs
object
(which it typically would be), the key must match a key in
that DataSpecs
object. If you're parsing a
genuine XML response the keys will match automatically, but,
if you're setting up test objects, you can create a
DataSpecs
with your own custom keys for full control.
Cannot be null, cannot be empty, cannot have more than 60
characters, and cannot contain characters outside of
[-_.a-zA-Z0-9]
.failure
- the non-null Failure
associated with
key
.this
, for method chaining.java.lang.NullPointerException
- if key
or
failure
is null
.java.lang.IllegalArgumentException
- if key
does not match
the required specification, if key is not recognized as one
from the original request (assuming this object has access to
the DataSpecs
to check), or if an item has already
been added with key
.public DataSets.Builder add(DataSpec dataSpec, DataSet dataSet)
DataSpec
from the request and a
DataSet
from the response, without dealing directly with the
string keys that are used in the XML.dataSpec
- the non-null DataSpec
object that
dataSet
was generated to satisfy.dataSet
- the non-null DataSet
object that was generated
to satisfy dataSpec
.this
, for method chaining.java.lang.IllegalStateException
- if this builder does not have access to
the original DataSpecs
object.java.lang.NullPointerException
- if dataSpec
or
dataSet
is null
.java.lang.IllegalArgumentException
- if dataSpec
is not
found in the DataSpecs
object that this builder holds
internally, or if an item corresponding to
dataSpec
has already been added.public DataSets.Builder addFailure(DataSpec dataSpec, Failure failure)
DataSpec
from the request and a
Failure
from the response, without dealing directly with the
string keys that are used in the XML.dataSpec
- the non-null DataSpec
object that's
processing resulted in failure
.failure
- the non-null Failure
object that resulted when
the API tried to generate a DataSet
to satisfy
dataSpec
.this
, for method chaining.java.lang.IllegalStateException
- if this builder does not have access to
the original DataSpecs
object.java.lang.NullPointerException
- if dataSpec
or
failure
is null
.java.lang.IllegalArgumentException
- if dataSpec
is
not found in the DataSpecs
object that this builder
holds internally, or if an item corresponding to
dataSpec
has already been added.public DataSets build()
DataSets
object created according to the
specification held by this builder.
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.