Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) SiteWhere, LLC. All rights reserved. http://www.sitewhere.com
   *
   * The software in this package is published under the terms of the CPAL v1.0
   * license, a copy of which has been included with this distribution in the
   * LICENSE.txt file.
   */
  package com.sitewhere.device.group;
  
 import java.util.List;
 import java.util.Map;
 
Utility methods for maniupulating device groups.

Author(s):
Derek
 
 public class DeviceGroupUtils {

Get devices in a group that match the given criteria.

Parameters:
groupToken
criteria
Returns:
Throws:
com.sitewhere.spi.SiteWhereException
 
 	public static List<IDevicegetDevicesInGroup(String groupTokenIDeviceSearchCriteria criteria)
 			throws SiteWhereException {
 		Collection<IDevicedevices = getDevicesInGroup(groupToken);
 		List<IDevicematches = new ArrayList<IDevice>();
 		for (IDevice device : devices) {
 			switch (criteria.getSearchType()) {
 			case : {
 				break;
 			}
 			case : {
 				if (!device.getSpecificationToken().equals(
 					continue;
 				}
 			}
 			}
 			if (criteria.isExcludeAssigned() && (device.getAssignmentToken() != null)) {
 				continue;
 			}
 			if ((criteria.getStartDate() != null)
 					&& (device.getCreatedDate().before(criteria.getStartDate()))) {
 				continue;
 			}
 			if ((criteria.getEndDate() != null) && (device.getCreatedDate().after(criteria.getEndDate()))) {
 				continue;
 			}
 			matches.add(device);
 		}
 		return matches;
 	}

Get the list of unique devices in a group. (Recurses into subgroups and removes duplicates)

Parameters:
groupToken
Returns:
Throws:
com.sitewhere.spi.SiteWhereException
 
 	public static Collection<IDevicegetDevicesInGroup(String groupTokenthrows SiteWhereException {
 		Map<StringIDevicedevices = new HashMap<StringIDevice>();
 		ISearchCriteria criteria = new SearchCriteria(1, 0);
 				SiteWhere.getServer().getDeviceManagement().listDeviceGroupElements(groupTokencriteria);
 		for (IDeviceGroupElement element : elements.getResults()) {
 			switch (element.getType()) {
 			case : {
 				devices.put(
 						element.getElementId(),
 								element.getElementId()));
 				break;
 			}
 			case : {
 				Collection<IDevicesubDevices = getDevicesInGroup(element.getElementId());
 				for (IDevice subDevice : subDevices) {
 					devices.put(subDevice.getHardwareId(), subDevice);
 				}
				break;
			}
			}
		}
		return devices.values();
	}

Gets devices in all groups that have the given role. Duplicates are removed.

Parameters:
groupRole
criteria
Returns:
Throws:
com.sitewhere.spi.SiteWhereException
		Map<StringIDevicedevices = new HashMap<StringIDevice>();
		ISearchCriteria groupCriteria = new SearchCriteria(1, 0);
						groupCriteria);
		for (IDeviceGroup group : groups.getResults()) {
			List<IDevicegroupDevices = getDevicesInGroup(group.getToken(), criteria);
			for (IDevice groupDevice : groupDevices) {
				devices.put(groupDevice.getHardwareId(), groupDevice);
			}
		}
		return devices.values();
	}
New to GrepCode? Check out our FAQ X