/** * Test API calls for listing and removing group elements. * * @param group * @throws SiteWhereException */ protected void testListAndRemoveNetworkElements(IDeviceGroup group) throws SiteWhereException { ISearchResults<IDeviceGroupElement> groupElements = getDeviceManagement().listDeviceGroupElements(group.getToken(), new SearchCriteria(0, 10)); LOGGER.info("Matched " + groupElements.getResults().size() + " group elements."); List<IDeviceGroupElementCreateRequest> delete = new ArrayList<IDeviceGroupElementCreateRequest>(); for (IDeviceGroupElement current : groupElements.getResults()) { DeviceGroupElementCreateRequest delElm = new DeviceGroupElementCreateRequest(); delElm.setType(current.getType()); delElm.setElementId(current.getElementId()); delete.add(delElm); } List<IDeviceGroupElement> deleted = getDeviceManagement().removeDeviceGroupElements(group.getToken(), delete); LOGGER.info("Deleted " + deleted.size() + " group elements."); groupElements = getDeviceManagement().listDeviceGroupElements(group.getToken(), new SearchCriteria(0, 100)); LOGGER.info("Remaining was " + groupElements.getResults().size() + " group elements."); }
@Override public void initialize(IDeviceManagement deviceManagement, IAssetModuleManager assetModuleManager) throws SiteWhereException { this.deviceManagement = deviceManagement; this.assetModuleManager = assetModuleManager; // Use the system account for logging "created by" on created elements. SecurityContextHolder.getContext().setAuthentication(SiteWhereServer.getSystemAuthentication()); // Coordinates for edges of zone. zoneLocations = new ArrayList<Location>(); zoneLocations.add(new Location(34.10260138703638, -84.24412965774536)); zoneLocations.add(new Location(34.101837372446774, -84.24243450164795)); zoneLocations.add(new Location(34.101517550337825, -84.24091100692749)); zoneLocations.add(new Location(34.10154953265732, -84.23856675624847)); zoneLocations.add(new Location(34.10153176473365, -84.23575580120087)); zoneLocations.add(new Location(34.10409030732968, -84.23689305782318)); zoneLocations.add(new Location(34.104996439280704, -84.23700034618376)); zoneLocations.add(new Location(34.10606246444614, -84.23700034618376)); zoneLocations.add(new Location(34.107691680235604, -84.23690915107727)); // Create device specifications. this.deviceSpecifications = createDeviceSpecifications(); IDeviceGroup heavy = createHeavyEquipmentGroup(); IDeviceGroup personnel = createPersonnelTrackingGroup(); IDeviceGroup tools = createToolTrackingGroup(); Map<String, SpecificationDetails> specMap = new HashMap<String, SpecificationDetails>(); for (int i = 0; i < SPECIFICATION_INFO.length; i++) { specMap.put(SPECIFICATION_INFO[i].getUuid(), SPECIFICATION_INFO[i]); } List<ISite> sites = createSites(); for (ISite site : sites) { List<DeviceAssignment> assignments = createAssignments(site, specMap); List<IDeviceGroupElementCreateRequest> heavyRequests = new ArrayList<IDeviceGroupElementCreateRequest>(); List<IDeviceGroupElementCreateRequest> personnelRequests = new ArrayList<IDeviceGroupElementCreateRequest>(); List<IDeviceGroupElementCreateRequest> toolsRequests = new ArrayList<IDeviceGroupElementCreateRequest>(); for (DeviceAssignment assignment : assignments) { DeviceGroupElementCreateRequest request = new DeviceGroupElementCreateRequest(); request.setType(GroupElementType.Device); request.setElementId(assignment.getDeviceHardwareId()); request.setRoles(new ArrayList<String>()); SpecificationDetails info = specMap.get(assignment.getDevice().getSpecificationToken()); if (info.getAssignmentChoices() == HEAVY_EQUIPMENT) { heavyRequests.add(request); } else if (info.getAssignmentChoices() == PERSONNEL) { personnelRequests.add(request); } else if (info.getAssignmentChoices() == TOOLS) { toolsRequests.add(request); } } getDeviceManagement().addDeviceGroupElements(heavy.getToken(), heavyRequests); getDeviceManagement().addDeviceGroupElements(personnel.getToken(), personnelRequests); getDeviceManagement().addDeviceGroupElements(tools.getToken(), toolsRequests); } SecurityContextHolder.getContext().setAuthentication(null); }