public Builder(IDeviceAssignment api) { request.setToken(api.getToken()); request.setDeviceHardwareId(api.getDeviceHardwareId()); request.setAssetModuleId(api.getAssetModuleId()); request.setAssetId(api.getAssetId()); request.setAssignmentType(api.getAssignmentType()); if (api.getMetadata() != null) { request.setMetadata(new HashMap<String, String>()); request.getMetadata().putAll(api.getMetadata()); } }
@Override public byte[] encodeDeviceAssignment(IDeviceAssignment assignment) throws SiteWhereException { ProtobufMarshaler.DeviceAssignment.Builder builder = ProtobufMarshaler.DeviceAssignment.newBuilder(); builder.setToken(assignment.getToken()); builder.setDeviceHardwareId(assignment.getDeviceHardwareId()); builder.setSiteToken(assignment.getSiteToken()); builder.setAssignmentType(marshalAssignmentType(assignment.getAssignmentType())); if (assignment.getAssetModuleId() != null) { builder.setAssetModuleId(assignment.getAssetModuleId()); } if (assignment.getAssetId() != null) { builder.setAssetId(assignment.getAssetId()); } builder.setStatus(assignment.getStatus().name()); if (assignment.getActiveDate() != null) { builder.setActiveDate(assignment.getActiveDate().getTime()); } if (assignment.getReleasedDate() != null) { builder.setReleasedDate(assignment.getReleasedDate().getTime()); } builder.setEntityData(createEntityData(assignment)); try { ByteArrayOutputStream out = new ByteArrayOutputStream(); builder.build().writeTo(out); return out.toByteArray(); } catch (IOException e) { throw new SiteWhereException("Unable to marshal device assignment.", e); } }
/** * Common creation logic for all device events. * * @param request * @param assignment * @param target * @throws SiteWhereException */ public static void deviceEventCreateLogic(IDeviceEventCreateRequest request, IDeviceAssignment assignment, DeviceEvent target) throws SiteWhereException { target.setAlternateId(request.getAlternateId()); target.setSiteToken(assignment.getSiteToken()); target.setDeviceAssignmentToken(assignment.getToken()); target.setAssignmentType(assignment.getAssignmentType()); target.setAssetModuleId(assignment.getAssetModuleId()); target.setAssetId(assignment.getAssetId()); if (request.getEventDate() != null) { target.setEventDate(request.getEventDate()); } else { target.setEventDate(new Date()); } target.setReceivedDate(new Date()); MetadataProvider.copy(request.getMetadata(), target); }
IDeviceAssignment assignment = (IDeviceAssignment) PayloadMarshalerResolver.getInstance() .getMarshaler(payloadType).decode(payload, DeviceAssignment.class); boolean sameAssetModule = assetModuleId.equals(assignment.getAssetModuleId()); boolean sameAssetId = assetId.equals(assignment.getAssetId()); boolean matchingStatus = (criteria.getStatus() == null)
result.setStatus(source.getStatus()); result.setAssignmentType(source.getAssignmentType()); result.setAssetModuleId(source.getAssetModuleId()); result.setAssetId(source.getAssetId()); MetadataProviderEntity.copy(source, result); IAsset asset = manager.getAssetById(source.getAssetModuleId(), source.getAssetId()); if (asset != null) { result.setAssetName(asset.getName());
/** * Copy information from SPI into Mongo {@link Document}. * * @param source * @param target */ public static void toDocument(IDeviceAssignment source, Document target) { if (source.getActiveDate() != null) { target.append(PROP_ACTIVE_DATE, source.getActiveDate()); } target.append(PROP_ASSET_MODULE_ID, source.getAssetModuleId()); target.append(PROP_ASSET_ID, source.getAssetId()); if (source.getAssignmentType() != null) { target.append(PROP_ASSIGNMENT_TYPE, source.getAssignmentType().name()); } if (source.getReleasedDate() != null) { target.append(PROP_RELEASED_DATE, source.getReleasedDate()); } if (source.getStatus() != null) { target.append(PROP_STATUS, source.getStatus().name()); } target.append(PROP_TOKEN, source.getToken()); target.append(PROP_DEVICE_HARDWARE_ID, source.getDeviceHardwareId()); target.append(PROP_SITE_TOKEN, source.getSiteToken()); if (source.getState() != null) { setState(source.getState(), target); } MongoSiteWhereEntity.toDocument(source, target); MongoMetadataProvider.toDocument(source, target); }