public class DirectlyConnectedDevice extends Client<VirtualDevice>
DirectlyConnectedDevice
for sending messages to, and receiving messages from, the server.Constructor and Description |
---|
DirectlyConnectedDevice()
Constructs a new
DirectlyConnectedDevice instance that will use a
custom or default TrustedAssetsManager to store, load and handle the device
configuration. |
DirectlyConnectedDevice(java.lang.Object context)
Constructs a new
DirectlyConnectedDevice instance with a
platform specific context. |
DirectlyConnectedDevice(java.lang.String configFilePath,
java.lang.String configFilePassword)
Constructs a new
DirectlyConnectedDevice instance that will load
the device configuration from the given file path and password. |
DirectlyConnectedDevice(java.lang.String configFilePath,
java.lang.String configFilePassword,
java.lang.Object context)
Constructs a new
DirectlyConnectedDevice instance with a
platform specific context. |
Modifier and Type | Method and Description |
---|---|
void |
activate(java.lang.String... deviceModels)
Activate the device.
|
void |
close()
Implementation of java.io.Closeable interface required of Client
|
StorageObject |
createStorageObject(java.lang.String name,
java.lang.String contentType)
Create a new
StorageObject that will have a name with the given
object name prefixed with the device's endpoint ID and a directory
separator. |
VirtualDevice |
createVirtualDevice(java.lang.String endpointId,
DeviceModel deviceModel)
Create an
AbstractVirtualDevice instance with the given device model
for the given device identifier. |
DeviceModel |
getDeviceModel(java.lang.String deviceModelUrn)
Get the
DeviceModel for the device model URN. |
java.lang.String |
getEndpointId()
Return the endpoint identifier of this directly-connected
device.
|
boolean |
isActivated()
Returns whether the device has been activated.
|
public DirectlyConnectedDevice() throws java.security.GeneralSecurityException
DirectlyConnectedDevice
instance that will use a
custom or default TrustedAssetsManager
to store, load and handle the device
configuration.java.security.GeneralSecurityException
- if the configuration could not be loaded,
or the server scheme is not supported.public DirectlyConnectedDevice(java.lang.Object context) throws java.security.GeneralSecurityException
DirectlyConnectedDevice
instance with a
platform specific context. A custom or default TrustedAssetsManager
will be used to store, load and handle the device trust material.
See configuration for details.context
- a platform specific object (e.g. application context),
that needs to be associated with this client. In
the case of Android, this is an android.content.Context
provided by the application or service. In the case of Java SE,
the parameter is not used and the value may be null
.java.security.GeneralSecurityException
- if the trust material could not be
loaded, or the server scheme is not supported.public DirectlyConnectedDevice(java.lang.String configFilePath, java.lang.String configFilePassword) throws java.security.GeneralSecurityException
DirectlyConnectedDevice
instance that will load
the device configuration from the given file path and password.
See configuration for details.configFilePath
- the path of the configuration fileconfigFilePassword
- the configuration file password,
or null
if the configurationFile is not encryptedjava.security.GeneralSecurityException
- if the configuration could not be
loaded, or the server scheme is not supported.public DirectlyConnectedDevice(java.lang.String configFilePath, java.lang.String configFilePassword, java.lang.Object context) throws java.security.GeneralSecurityException
DirectlyConnectedDevice
instance with a
platform specific context. The device configuration will be loaded
from the given file path and password.
See configuration for details.configFilePath
- the path of the configuration fileconfigFilePassword
- the configuration file password,
or null
if the configurationFile is not encryptedcontext
- a platform specific object (e.g. application context),
that needs to be associated with this client. In
the case of Android, this is an android.content.Context
provided by the application or service. In the case of Java SE,
the parameter is not used and the value may be null
.java.security.GeneralSecurityException
- if the configuration could not be
loaded, or the server scheme is not supported.public final void activate(java.lang.String... deviceModels) throws java.io.IOException, java.security.GeneralSecurityException
If the device is already activated, this method will throw an
IllegalArgumentException. The user should call the isActivated()
method prior to calling activate.
deviceModels
- should contain the device model type URNs of this directly connected device.
The device is activated with the given device models.
The deviceModels
parameter is zero or more, comma separated, device model URNs.java.io.IOException
- if there is an I/O exception.java.security.GeneralSecurityException
- when key or signature algorithm class
cannot be loaded, or the key is not in
the trusted assets store, or the
private key is invalidjava.lang.IllegalStateException
- if the device has already been activatedisActivated()
public final boolean isActivated()
public final java.lang.String getEndpointId()
activate(String...)
public final VirtualDevice createVirtualDevice(java.lang.String endpointId, DeviceModel deviceModel)
AbstractVirtualDevice
instance with the given device model
for the given device identifier. This method creates a new VirtualDevice
instance for the given parameters. The client library does not
cache previously created VirtualDevice objects.createVirtualDevice
in class Client<VirtualDevice>
endpointId
- The device identifier of the device being modeleddeviceModel
- The device model URN that this device implementspublic final DeviceModel getDeviceModel(java.lang.String deviceModelUrn) throws java.io.IOException, java.security.GeneralSecurityException
DeviceModel
for the device model URN. This method may
return null
if there is no device model for the URN. Null may also be
returned if the device model is a "draft" and the property
com.oracle.iot.client.device.allow_draft_device_models
is set to
false
, which is the default.getDeviceModel
in class Client<VirtualDevice>
deviceModelUrn
- the URN of the device modelnull
if it does not existjava.io.IOException
- if there is an I/O error when communicating
with the serverjava.security.GeneralSecurityException
- when key or signature algorithm class
cannot be loaded, or the key is not in
the trusted assets store, or the
private key is invalidpublic void close() throws java.io.IOException
java.io.IOException
- if an I/O error occurspublic StorageObject createStorageObject(java.lang.String name, java.lang.String contentType) throws java.io.IOException, java.security.GeneralSecurityException
StorageObject
that will have a name with the given
object name prefixed with the device's endpoint ID and a directory
separator. The prefix addition can be disabled by setting the
oracle.iot.client.disable_storage_object_prefix
to true
.
If contentType
is null, the mime-type defaults to
"application/octet-stream".
createStorageObject
in class Client<VirtualDevice>
name
- the unique name to be used to reference the content in
storagecontentType
- The mime-type of the content or null
java.io.IOException
- if there is an IOException
raised by the
runtime, or an abnormal response from the storage cloudjava.security.GeneralSecurityException
- if there is an exception establishing
a secure connection to the storage cloud