use of com.arm.mbed.cloud.sdk.devicedirectory.model.Query in project mbed-cloud-sdk-java by ARMmbed.
the class DeviceDirectory method updateQuery.
/**
* Updates a query.
* <p>
* Example:
*
* <pre>
* {@code
* try {
* Query query = new Query();
* query.setName("NEW Quickstart query");
* String queryId = "015f4ac587f500000000000100100249";
* query.setId(queryId);
*
* Filters deviceFilter = new Filters();
* deviceFilter.add(new Filter("state", FilterOperator.EQUAL, "registered"));
* deviceFilter.add(new Filter("deviceClass", FilterOperator.EQUAL, getClassId()));
* query.setFilters(deviceFilter);
*
* Calendar date = GregorianCalendar(2017,10,30,10,20,56);
* query.addCreatedAtFilter(date.getTime(),FilterOperator.GREATER_THAN);
*
* Query newQuery = deviceDirectoryApi.updateQuery(query);
* System.out.println("Update query name: " + newQuery.getName());
* assert query.getId() == newQuery.getId();
*
* } catch (MbedCloudException e) {
* e.printStackTrace();
* }
* }
* </pre>
*
* @param query
* The query to update.
* @return updated query.
* @throws MbedCloudException
* if a problem occurred during request processing.
*/
@API
@Nullable
public Query updateQuery(@NonNull Query query) throws MbedCloudException {
checkNotNull(query, TAG_QUERY);
checkNotNull(query.getId(), TAG_QUERY_ID);
checkModelValidity(query, TAG_QUERY);
final Query finalQuery = query;
return CloudCaller.call(this, "updateQuery()", QueryAdapter.getMapper(), new CloudCall<DeviceQuery>() {
@Override
public Call<DeviceQuery> call() {
return endpoint.getDirectory().deviceQueryUpdate(finalQuery.getId(), QueryAdapter.reverseMapUpdate(finalQuery));
}
});
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Query in project mbed-cloud-sdk-java by ARMmbed.
the class DeviceDirectory method addQuery.
/**
* Adds a query.
* <p>
* Example:
*
* <pre>
* {@code
* try {
* Query query = new Query();
* query.setName("Quickstart query");
*
* Filters deviceFilter = new Filters();
* deviceFilter.add(new Filter("state", FilterOperator.EQUAL, "registered"));
* deviceFilter.add(new Filter("deviceClass", FilterOperator.EQUAL, getClassId()));
* query.setFilters(deviceFilter);
*
* Calendar date = GregorianCalendar(2017,10,30,10,20,56);
* query.addCreatedAtFilter(date.getTime(),FilterOperator.GREATER_THAN);
*
* Query newQuery = deviceDirectoryApi.addQuery(query);
* System.out.println("Query ID: " + newQuery.getId());
* } catch (MbedCloudException e) {
* e.printStackTrace();
* }
* }
* </pre>
*
* @param query
* the query to add.
* @return added query.
* @throws MbedCloudException
* if a problem occurred during request processing.
*/
@API
@Nullable
public Query addQuery(@NonNull Query query) throws MbedCloudException {
checkNotNull(query, TAG_QUERY);
checkModelValidity(query, TAG_QUERY);
final Query finalQuery = query;
return CloudCaller.call(this, "addQuery()", QueryAdapter.getMapper(), new CloudCall<DeviceQuery>() {
@Override
public Call<DeviceQuery> call() {
return endpoint.getDirectory().deviceQueryCreate(QueryAdapter.reverseMapAdd(finalQuery));
}
});
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Query in project mbed-cloud-sdk-java by ARMmbed.
the class DeviceDirectoryExamples method listQueries.
/**
* Lists the first 5 current queries.
*/
@SuppressWarnings("boxing")
@Example
public void listQueries() {
ConnectionOptions config = Configuration.get();
DeviceDirectory api = new DeviceDirectory(config);
try {
// Defining listing options.
QueryListOptions options = new QueryListOptions();
options.setLimit(5);
// Listing queries.
ListResponse<Query> queries = api.listQueries(options);
for (Query query : queries.getData()) {
log("Query", query);
}
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Query in project mbed-cloud-sdk-java by ARMmbed.
the class UpdateExamples method manageCampaigns.
/**
* Lists the first 5 update campaigns.
*/
@SuppressWarnings("boxing")
@Example
public void manageCampaigns() {
ConnectionOptions config = Configuration.get();
Update api = new Update(config);
DeviceDirectory api2 = new DeviceDirectory(config);
String campaignId = null;
try {
// Getting a manifest file.
FirmwareManifestListOptions options = new FirmwareManifestListOptions();
options.setLimit(1);
FirmwareManifest manifest = null;
Paginator<FirmwareManifest> manifests = api.listAllFirmwareManifests(options);
if (!manifests.hasNext()) {
fail("Could not get any manifest files from Mbed Cloud");
}
manifest = manifests.next();
log("Campaign manifest", manifest);
// Getting a query.
QueryListOptions options2 = new QueryListOptions();
options.setLimit(1);
options.setOrder(Order.DESC);
Query query = null;
Paginator<Query> queries = api2.listAllQueries(options2);
if (!queries.hasNext()) {
fail("Could not fetch any queries from Mbed Cloud");
}
query = queries.first();
log("Campaign query", query);
// Creating an update campaign.
String campaignName = "campaign-" + UUID.randomUUID().toString();
log("Campaign name", campaignName);
Campaign myCampaign = new Campaign(campaignName, manifest, query);
myCampaign.setScheduledAt(new Date());
myCampaign = api.addCampaign(myCampaign);
log("Created campaign", myCampaign);
campaignId = myCampaign.getId();
// Updating campaign.
campaignName = "campaign-" + UUID.randomUUID().toString();
log("Updated campaign name", campaignName);
myCampaign.setName(campaignName);
myCampaign = api.updateCampaign(myCampaign);
log("Updated campaign", myCampaign);
campaignId = myCampaign.getId();
// Starting the campaign.
myCampaign = api.startCampaign(myCampaign);
log("Started campaign", myCampaign);
campaignId = myCampaign.getId();
// Printing device states
CampaignDevicesStatesListOptions deviceStateOptions = new CampaignDevicesStatesListOptions();
deviceStateOptions.setLimit(20);
for (int countdown = 10; countdown >= 0; countdown--) {
log("Device states at countdown", countdown);
Paginator<CampaignDeviceState> states = api.listAllCampaignDeviceStates(campaignId, deviceStateOptions);
while (states.hasNext()) {
CampaignDeviceState state = states.next();
log("Device " + state.getDeviceId() + " state", state.getState());
}
}
// Stopping campaign.
myCampaign = api.stopCampaign(myCampaign);
log("Stopped campaign", myCampaign);
campaignId = myCampaign.getId();
// Deleting campaign.
deleteCreatedCampaign(campaignId, api);
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
deleteCreatedCampaign(campaignId, api);
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.devicedirectory.model.Query in project mbed-cloud-sdk-java by ARMmbed.
the class QueryAdapter method map.
/**
* Maps query.
*
* @param deviceQuery
* query to map
* @return a map
*/
public static Query map(DeviceQuery deviceQuery) {
if (deviceQuery == null) {
return null;
}
final Query query = new Query(deviceQuery.getId(), TranslationUtils.toDate(deviceQuery.getCreatedAt()), TranslationUtils.toDate(deviceQuery.getUpdatedAt()));
query.setName(deviceQuery.getName());
query.setFilters(decodeFilters(deviceQuery.getQuery()));
return query;
}
Aggregations