List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getProperty
public Object getProperty(String key)
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderImpl.java
public ArrayList<Connector> initDevices(ObjectBroker objectBroker) { setConfiguration(devicesConfig);/*from w w w . j a v a2 s . c o m*/ objectBroker.getConfigDb().prepareDeviceLoader(getClass().getName()); ArrayList<Connector> connectors = new ArrayList<Connector>(); List<JsonNode> connectorsFromDb = objectBroker.getConfigDb().getConnectors("knx"); int connectorsSize = 0; if (connectorsFromDb.size() <= 0) { Object knxConnectors = devicesConfig.getProperty("knx.connector.name"); if (knxConnectors != null) { connectorsSize = 1; } if (knxConnectors instanceof Collection<?>) { connectorsSize = ((Collection<?>) knxConnectors).size(); } } else connectorsSize = connectorsFromDb.size(); for (int connector = 0; connector < connectorsSize; connector++) { HierarchicalConfiguration subConfig = devicesConfig.configurationAt("knx.connector(" + connector + ")"); Object knxConfiguredDevices = subConfig.getProperty("device.type");// just to get the number of devices String connectorId = ""; String connectorName = subConfig.getString("name"); String routerIP = subConfig.getString("router.ip"); int routerPort = subConfig.getInteger("router.port", 3671); String localIP = subConfig.getString("localIP"); Boolean enabled = subConfig.getBoolean("enabled", false); try { connectorId = connectorsFromDb.get(connector).get("_id").asText(); connectorName = connectorsFromDb.get(connector).get("name").asText(); enabled = connectorsFromDb.get(connector).get("enabled").asBoolean(); routerIP = connectorsFromDb.get(connector).get("routerHostname").asText(); routerPort = connectorsFromDb.get(connector).get("routerPort").asInt(); localIP = connectorsFromDb.get(connector).get("localIP").asText(); } catch (Exception e) { log.info("Cannot fetch configuration from Database, using devices.xml"); } if (enabled) { try { KNXConnector knxConnector = new KNXConnector(routerIP, routerPort, localIP); knxConnector.setName(connectorName); knxConnector.setTechnology("knx"); knxConnector.setEnabled(enabled); //knxConnector.connect(); connectors.add(knxConnector); int numberOfDevices = 0; List<Device> devicesFromDb = objectBroker.getConfigDb().getDevices(connectorId); if (connectorsFromDb.size() <= 0) { if (knxConfiguredDevices != null) { numberOfDevices = 1; // there is at least one // device. } if (knxConfiguredDevices instanceof Collection<?>) { Collection<?> knxDevices = (Collection<?>) knxConfiguredDevices; numberOfDevices = knxDevices.size(); } } else numberOfDevices = devicesFromDb.size(); log.info( numberOfDevices + " KNX devices found in configuration for connector " + connectorName); for (int i = 0; i < numberOfDevices; i++) { String type = subConfig.getString("device(" + i + ").type"); List<Object> address = subConfig.getList("device(" + i + ").address"); String addressString = address.toString(); String ipv6 = subConfig.getString("device(" + i + ").ipv6"); String href = subConfig.getString("device(" + i + ").href"); String name = subConfig.getString("device(" + i + ").name"); String displayName = subConfig.getString("device(" + i + ").displayName"); Boolean historyEnabled = subConfig.getBoolean("device(" + i + ").historyEnabled", false); Boolean groupCommEnabled = subConfig.getBoolean("device(" + i + ").groupCommEnabled", false); Integer historyCount = subConfig.getInt("device(" + i + ").historyCount", 0); Boolean refreshEnabled = subConfig.getBoolean("device(" + i + ").refreshEnabled", false); Device deviceFromDb; try { deviceFromDb = devicesFromDb.get(i); type = deviceFromDb.getType(); addressString = deviceFromDb.getAddress(); String subAddr[] = addressString.substring(1, addressString.length() - 1).split(", "); address = Arrays.asList((Object[]) subAddr); ipv6 = deviceFromDb.getIpv6(); href = deviceFromDb.getHref(); name = deviceFromDb.getName(); displayName = deviceFromDb.getDisplayName(); historyEnabled = deviceFromDb.isHistoryEnabled(); groupCommEnabled = deviceFromDb.isGroupcommEnabled(); refreshEnabled = deviceFromDb.isRefreshEnabled(); historyCount = deviceFromDb.getHistoryCount(); } catch (Exception e) { } // Transition step: comment when done Device d = new Device(type, ipv6, addressString, href, name, displayName, historyCount, historyEnabled, groupCommEnabled, refreshEnabled); objectBroker.getConfigDb().prepareDevice(connectorName, d); if (type != null && address != null) { int addressCount = address.size(); try { Constructor<?>[] declaredConstructors = Class.forName(type) .getDeclaredConstructors(); for (int k = 0; k < declaredConstructors.length; k++) { if (declaredConstructors[k].getParameterTypes().length == addressCount + 1) { // constructor // that // takes // the // KNX // connector // and // group // address // as // argument Object[] args = new Object[address.size() + 1]; // first arg is KNX connector args[0] = knxConnector; for (int l = 1; l <= address.size(); l++) { try { String adr = (String) address.get(l - 1); if (adr == null || adr.equals("null")) { args[l] = null; } else { args[l] = new GroupAddress(adr); } } catch (KNXFormatException e) { e.printStackTrace(); } } try { // create a instance of the // specified KNX device Obj knxDevice = (Obj) declaredConstructors[k].newInstance(args); knxDevice.setHref(new Uri( URLEncoder.encode(connectorName, "UTF-8") + "/" + href)); if (name != null && name.length() > 0) { knxDevice.setName(name); } if (displayName != null && displayName.length() > 0) { knxDevice.setDisplayName(displayName); } if (ipv6 != null) { objectBroker.addObj(knxDevice, ipv6); } else { objectBroker.addObj(knxDevice); } myObjects.add(knxDevice); knxDevice.initialize(); if (historyEnabled != null && historyEnabled) { if (historyCount != null && historyCount != 0) { objectBroker.addHistoryToDatapoints(knxDevice, historyCount); } else { objectBroker.addHistoryToDatapoints(knxDevice); } } if (groupCommEnabled) { objectBroker.enableGroupComm(knxDevice); } if (refreshEnabled != null && refreshEnabled) { objectBroker.enableObjectRefresh(knxDevice); } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } catch (SecurityException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } } } return connectors; }
From source file:com.sinfonier.util.XMLProperties.java
/** * Get a complex property. Complex property is a label which contains several sublabels. * //from w w w.j a va 2 s . c o m * @param type {@code com.sinfonier.util.ComponentType}. * @param componentName Name of component. * @param propertyName Property name. * @return */ public List<Map<String, Object>> getComplexProperty(ComponentType type, String componentName, String propertyName) { StringBuilder sb = new StringBuilder(); String itemName = propertyName.substring(0, propertyName.length() - 1); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); switch (type) { case BOLT: sb.append("bolts/bolt[@abstractionId='"); break; case SPOUT: sb.append("spouts/spout[@abstractionId='"); break; case DRAIN: sb.append("drains/drain[@abstractionId='"); break; default: break; } sb.append(componentName).append("']/").append(propertyName).append("/").append(itemName); List<HierarchicalConfiguration> items = xml.configurationsAt(sb.toString()); for (HierarchicalConfiguration item : items) { Iterator<String> keys = item.getKeys(); Map<String, Object> map = new HashMap<String, Object>(); while (keys.hasNext()) { String key = keys.next(); map.put(key, item.getProperty(key)); } list.add(map); } return list; }
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.bacnet.BacnetDeviceLoaderImpl.java
public ArrayList<Connector> initDevices(ObjectBroker objectBroker) { setConfiguration(devicesConfig);//from www .jav a 2 s . co m objectBroker.getConfigDb().prepareDeviceLoader(getClass().getName()); ArrayList<Connector> connectors = new ArrayList<Connector>(); List<JsonNode> connectorsFromDb = objectBroker.getConfigDb().getConnectors("bacnet"); int connectorsSize = 0; // bacnet if (connectorsFromDb.size() <= 0) { Object bacnetConnectors = devicesConfig.getProperty("bacnet.connector.name"); if (bacnetConnectors != null) { connectorsSize = 1; } else { connectorsSize = 0; } if (bacnetConnectors instanceof Collection<?>) { connectorsSize = ((Collection<?>) bacnetConnectors).size(); } } else connectorsSize = connectorsFromDb.size(); for (int connector = 0; connector < connectorsSize; connector++) { HierarchicalConfiguration subConfig = devicesConfig .configurationAt("bacnet.connector(" + connector + ")"); Object bacnetConfiguredDevices = subConfig.getProperty("device.type"); String connectorId = ""; String connectorName = subConfig.getString("name"); String broadcastAddress = subConfig.getString("broadcastAddress"); int localPort = subConfig.getInteger("localPort", 3671); int localDeviceID = subConfig.getInteger("localDeviceID", 12345); boolean enabled = subConfig.getBoolean("enabled", false); Boolean groupCommEnabled = subConfig.getBoolean("groupCommEnabled", null); Boolean historyEnabled = subConfig.getBoolean("historyEnabled", null); try { connectorId = connectorsFromDb.get(connector).get("_id").asText(); connectorName = connectorsFromDb.get(connector).get("name").asText(); enabled = connectorsFromDb.get(connector).get("enabled").asBoolean(); groupCommEnabled = connectorsFromDb.get(connector).get("groupCommEnabled").asBoolean(); historyEnabled = connectorsFromDb.get(connector).get("historyEnabled").asBoolean(); broadcastAddress = connectorsFromDb.get(connector).get("broadcastAddress").asText(); localPort = connectorsFromDb.get(connector).get("localPort").asInt(); localDeviceID = connectorsFromDb.get(connector).get("localDeviceID").asInt(); } catch (Exception e) { log.info("Cannot fetch configuration from Database, using devices.xml"); } if (enabled) { try { BACnetConnector bacnetConnector = new BACnetConnector(localDeviceID, broadcastAddress, localPort); bacnetConnector.setName(connectorName); bacnetConnector.setTechnology("bacnet"); bacnetConnector.setEnabled(enabled); Obj bacRoot = bacnetConnector.getRootObj(); bacRoot.setName(connectorName); bacRoot.setHref(new Uri(connectorName.replaceAll("[^a-zA-Z0-9-~\\(\\)]", ""))); objectBroker.addObj(bacRoot, true); // Transition step: Moving configs to DB: all connector enabled, uncomment when done //bacnetConnector.connect(); Boolean discoveryEnabled = subConfig.getBoolean("discovery-enabled", false); if (discoveryEnabled) bacnetConnector.discover( new DeviceDiscoveryListener(objectBroker, groupCommEnabled, historyEnabled)); connectors.add(bacnetConnector); int numberOfDevices = 0; List<Device> devicesFromDb = objectBroker.getConfigDb().getDevices(connectorId); if (connectorsFromDb.size() <= 0) { // TODO: bacnetConfiguredDevices is from devices.xml --> mismatch when a connector does not have any device associated, // e.g., bacnet a-lab (auto) connector // do like this for other device loaders! if (bacnetConfiguredDevices != null) { numberOfDevices = 1; // there is at least one device. } if (bacnetConfiguredDevices instanceof Collection<?>) { Collection<?> bacnetDevices = (Collection<?>) bacnetConfiguredDevices; numberOfDevices = bacnetDevices.size(); } } else numberOfDevices = devicesFromDb.size(); log.info(numberOfDevices + " BACnet devices found in configuration for connector " + connectorName); // Transition step: comment when done for (int i = 0; i < numberOfDevices; i++) { String type = subConfig.getString("device(" + i + ").type"); List<Object> address = subConfig.getList("device(" + i + ").address"); String addressString = address.toString(); String ipv6 = subConfig.getString("device(" + i + ").ipv6"); String href = subConfig.getString("device(" + i + ").href"); // device specific setting Boolean historyEnabledDevice = subConfig.getBoolean("device(" + i + ").historyEnabled", null); if (historyEnabledDevice != null) { historyEnabled = historyEnabledDevice; } // device specific setting Boolean groupCommEnabledDevice = subConfig.getBoolean("device(" + i + ").groupCommEnabled", null); if (groupCommEnabledDevice != null) { // overwrite general settings groupCommEnabled = groupCommEnabledDevice; } String name = subConfig.getString("device(" + i + ").name"); String displayName = subConfig.getString("device(" + i + ").displayName"); Boolean refreshEnabled = subConfig.getBoolean("device(" + i + ").refreshEnabled", false); Integer historyCount = subConfig.getInt("device(" + i + ").historyCount", 0); Device deviceFromDb; try { deviceFromDb = devicesFromDb.get(i); type = deviceFromDb.getType(); addressString = deviceFromDb.getAddress(); String subAddr[] = addressString.substring(1, addressString.length() - 1).split(", "); address = Arrays.asList((Object[]) subAddr); ipv6 = deviceFromDb.getIpv6(); href = deviceFromDb.getHref(); name = deviceFromDb.getName(); displayName = deviceFromDb.getDisplayName(); historyEnabled = deviceFromDb.isHistoryEnabled(); groupCommEnabled = deviceFromDb.isGroupcommEnabled(); refreshEnabled = deviceFromDb.isRefreshEnabled(); historyCount = deviceFromDb.getHistoryCount(); } catch (Exception e) { } // Transition step: comment when done Device d = new Device(type, ipv6, addressString, href, name, displayName, historyCount, historyEnabled, groupCommEnabled, refreshEnabled); objectBroker.getConfigDb().prepareDevice(connectorName, d); if (type != null && address != null) { // now follow possible multiple data points // identified through // the device Id, object type, the instance number and the // property identifier, which shall be packaged into an BacnetDatapointInfo object ObjectIdentifier[] objectIdentifier = new ObjectIdentifier[(address.size()) / 4]; PropertyIdentifier[] propertyIdentifier = new PropertyIdentifier[(address.size()) / 4]; BacnetDataPointInfo[] bacnetDataPointInfo = new BacnetDataPointInfo[(address.size()) / 4]; int q = 0; for (int p = 0; p <= address.size() - 4; p += 4) { int remoteDeviceID = Integer.parseInt((String) address.get(p)); ObjectIdentifier objIdentifier = new ObjectIdentifier( new ObjectType(Integer.parseInt((String) address.get(p + 1))), Integer.parseInt((String) address.get(p + 2))); PropertyIdentifier propIdentifier = new PropertyIdentifier( Integer.parseInt((String) address.get(p + 3))); objectIdentifier[q] = objIdentifier; propertyIdentifier[q] = propIdentifier; bacnetDataPointInfo[q] = new BacnetDataPointInfo(remoteDeviceID, objIdentifier, propIdentifier); q = q + 1; } Object[] args = new Object[q + 1]; args[0] = bacnetConnector; // args[1] = Integer.parseInt(remoteDeviceID); for (int p = 0; p < bacnetDataPointInfo.length; p++) { args[1 + p] = bacnetDataPointInfo[p]; } try { Constructor<?>[] declaredConstructors = Class.forName(type) .getDeclaredConstructors(); for (int k = 0; k < declaredConstructors.length; k++) { if (declaredConstructors[k].getParameterTypes().length == args.length) { // constructor // that // takes // the // KNX // connector // and // group // address // as // argument Obj bacnetDevice = (Obj) declaredConstructors[k].newInstance(args); // create // a // instance // of // the // specified // KNX // device bacnetDevice.setHref( new Uri(URLEncoder.encode(connectorName, "UTF-8") + "/" + href)); if (name != null && name.length() > 0) { bacnetDevice.setName(name); } if (displayName != null && displayName.length() > 0) { bacnetDevice.setDisplayName(displayName); } if (ipv6 != null) { objectBroker.addObj(bacnetDevice, ipv6); } else { objectBroker.addObj(bacnetDevice); } myObjects.add(bacnetDevice); bacnetDevice.initialize(); if (historyEnabled != null && historyEnabled) { if (historyCount != null && historyCount != 0) { objectBroker.addHistoryToDatapoints(bacnetDevice, historyCount); } else { objectBroker.addHistoryToDatapoints(bacnetDevice); } } if (refreshEnabled != null && refreshEnabled) { objectBroker.enableObjectRefresh(bacnetDevice); } if (groupCommEnabled != null && groupCommEnabled) { objectBroker.enableGroupComm(bacnetDevice); } } } } catch (SecurityException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } } } return connectors; }
From source file:de.uni_rostock.goodod.tools.Configuration.java
private HierarchicalConfiguration readTestConfig(File testFile) throws ConfigurationException, FileNotFoundException, IOException { HierarchicalConfiguration finalConf = null; CombinedConfiguration mergedConf = null; HierarchicalConfiguration loadedConf = null; if (isXMLConfig(testFile)) { loadedConf = new XMLPropertyListConfiguration(testFile); } else {//ww w . jav a 2 s . c o m loadedConf = new PropertyListConfiguration(testFile); } /* * Some compatibility magic: Our initial version had very specific uses and according configuration wording. * We want to be more generic, so we re-route some information in the configs. */ HierarchicalConfiguration groupsConf = (HierarchicalConfiguration) loadedConf .getProperty("groupOntologies"); if (null == loadedConf.getProperty("studentOntologies") && (null != groupsConf)) { HierarchicalConfiguration cfg = new HierarchicalConfiguration(); mergedConf = new CombinedConfiguration(new OverrideCombiner()); cfg.setProperty("studentOntologies", groupsConf); mergedConf.addConfiguration(cfg); mergedConf.addConfiguration(loadedConf); finalConf = mergedConf; } else { finalConf = loadedConf; } return finalConf; }
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java
private void parseBuildingView(HierarchicalConfiguration partConfig, Obj parent, Network n, ObjectBroker objectBroker, Hashtable<String, EntityImpl> entityById) { for (int partsIdx = 0; partsIdx < sizeOfConfiguration(partConfig.getProperty("part.[@id]")); partsIdx++) { String partId = partConfig.getString("part(" + partsIdx + ").[@id]"); String partName = arrayToString(partConfig.getStringArray("part(" + partsIdx + ").[@name]")); String partDescription = arrayToString( partConfig.getStringArray("part(" + partsIdx + ").[@description]")); String partType = partConfig.getString("part(" + partsIdx + ").[@type]"); PartImpl part = new PartImpl(partId, partName, partDescription, partType); // add part to parent part if (parent instanceof ViewBuildingImpl) ((ViewBuildingImpl) parent).addPart(part); else if (parent instanceof PartImpl) ((PartImpl) parent).addPart(part); else//from w ww . ja v a 2 s .c o m parent.add(part); objectBroker.addObj(part, true); // add instances to part HierarchicalConfiguration concretePart = partConfig.configurationAt("part(" + partsIdx + ")"); for (int instanceIdx = 0; instanceIdx < sizeOfConfiguration( concretePart.getProperty("instance.[@id]")); instanceIdx++) { String instanceId = concretePart.getString("instance(" + instanceIdx + ").[@id]"); Obj instance = part.addInstance(entityById.get(instanceId)); objectBroker.addObj(instance); } // recursively add more parts parseBuildingView(concretePart, part, n, objectBroker, entityById); } }
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java
private void parseGroupAddressConfig(HierarchicalConfiguration groupConfig, Hashtable<String, String> groupAddressByDatapointId) { // if there are no group elements return for (int groupsIdx = 0; groupsIdx < sizeOfConfiguration( groupConfig.getProperty("group.[@id]")); groupsIdx++) { String groupAddress = groupConfig.getString("group(" + groupsIdx + ").[@address]"); // find instance elements for this group HierarchicalConfiguration concreteGroup = groupConfig.configurationAt("group(" + groupsIdx + ")"); for (int instanceIdx = 0; instanceIdx < sizeOfConfiguration( concreteGroup.getProperty("instance.[@id]")); instanceIdx++) { String instanceId = concreteGroup.getString("instance(" + instanceIdx + ").[@id]"); log.info("Mapping instanceID: " + instanceId + " to " + groupAddress); if (!groupAddressByDatapointId.containsKey(instanceId)) groupAddressByDatapointId.put(instanceId, groupAddress); }// w ww. j a v a2 s .co m // recursively perform this method for nested groups parseGroupAddressConfig(concreteGroup, groupAddressByDatapointId); } }
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java
private void parseDomainView(HierarchicalConfiguration domainConfig, Obj parent, Network n, ObjectBroker objectBroker, Hashtable<String, EntityImpl> entityById, Hashtable<String, DatapointImpl> datapointById) { for (int domainIdx = 0; domainIdx < sizeOfConfiguration( domainConfig.getProperty("domain.[@id]")); domainIdx++) { String domainId = domainConfig.getString("domain(" + domainIdx + ").[@id]"); String domainName = arrayToString(domainConfig.getStringArray("domain(" + domainIdx + ").[@name]")); String domainDescription = arrayToString( domainConfig.getStringArray("domain(" + domainIdx + ").[@description]")); DomainImpl domain = new DomainImpl(domainId, domainName, domainDescription); // add part to parent part if (parent instanceof ViewDomainsImpl) ((ViewDomainsImpl) parent).addDomain(domain); else if (parent instanceof DomainImpl) ((DomainImpl) parent).addDomain(domain); else/*w w w .j av a 2s . c o m*/ parent.add(domain); objectBroker.addObj(domain, true); // add instances to part HierarchicalConfiguration concreteDomain = domainConfig.configurationAt("domain(" + domainIdx + ")"); for (int instanceIdx = 0; instanceIdx < sizeOfConfiguration( concreteDomain.getProperty("instance.[@id]")); instanceIdx++) { String instanceId = concreteDomain.getString("instance(" + instanceIdx + ").[@id]"); Obj addInstance = domain.addInstance(entityById.get(instanceId)); objectBroker.addObj(addInstance, true); } // recursively add more domains parseDomainView(concreteDomain, domain, n, objectBroker, entityById, datapointById); } }
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java
private void parseTopologyView(HierarchicalConfiguration areaConfig, Obj parent, Network n, ObjectBroker objectBroker, Hashtable<String, EntityImpl> entityById, Hashtable<String, DatapointImpl> datapointById, Hashtable<String, String> resourceById) { for (int areaIdx = 0; areaIdx < sizeOfConfiguration(areaConfig.getProperty("area.[@id]")); areaIdx++) { String areaId = areaConfig.getString("area(" + areaIdx + ").[@id]"); String areaName = arrayToString(areaConfig.getStringArray("area(" + areaIdx + ").[@name]")); String areaDescription = arrayToString( areaConfig.getStringArray("area(" + areaIdx + ").[@description]")); String areaMediaTypeId = areaConfig.getString("area(" + areaIdx + ").[@mediaTypeId]"); long areaAddress = areaConfig.getLong("area(" + areaIdx + ").[@address]"); String areaMediaType = null; if (areaMediaTypeId != null) { areaMediaType = resourceById.get(areaMediaTypeId); }// w ww. java 2s . c o m AreaImpl area = new AreaImpl(areaId, areaName, areaDescription, areaAddress, areaMediaType); // add part to parent part if (parent instanceof ViewTopologyImpl) ((ViewTopologyImpl) parent).addArea(area); else if (parent instanceof DomainImpl) ((AreaImpl) parent).addArea(area); else parent.add(area); objectBroker.addObj(area, true); // add instances to part HierarchicalConfiguration concreteArea = areaConfig.configurationAt("area(" + areaIdx + ")"); for (int instanceIdx = 0; instanceIdx < sizeOfConfiguration( concreteArea.getProperty("instance.[@id]")); instanceIdx++) { String instanceId = concreteArea.getString("instance(" + instanceIdx + ").[@id]"); long address = concreteArea.getLong("instance(" + instanceIdx + ").[@address]"); Obj addInstance = area.addInstance(entityById.get(instanceId), address); objectBroker.addObj(addInstance, true); } // recursively add more domains parseTopologyView(concreteArea, area, n, objectBroker, entityById, datapointById, resourceById); } }
From source file:it.grid.storm.namespace.config.xml.XMLParserUtil.java
public int getNumberOfPoolMembers(String nameOfFS, int poolCounter) throws NamespaceException { int numOfFS = retrieveNumberByName(nameOfFS, XMLConst.FS_BY_NAME); if (numOfFS == -1) { throw new NamespaceException("FS named '" + nameOfFS + "' does not exist in config"); }//from w w w .java 2 s. co m String subTree = substituteNumberInPoolElement(nameOfFS, poolCounter, XMLConst.POOL); HierarchicalConfiguration sub = configuration.configurationAt(subTree); Object members = sub.getProperty("members.member[@member-id]"); int numOfMembers = -1; if (members != null) { if (members instanceof Collection) { numOfMembers = ((Collection) members).size(); } else { numOfMembers = 1; } } else { log.error("Error during the retrieve of the number of pool member of " + nameOfFS); } return numOfMembers; }
From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java
private void parseFunctionalView(HierarchicalConfiguration groupConfig, Obj parent, Network n, ObjectBroker objectBroker, Hashtable<String, EntityImpl> entityById, Hashtable<String, DatapointImpl> datapointById, KNXConnector knxConnector, Hashtable<String, String> groupAddressByDatapointId) { for (int groupsIdx = 0; groupsIdx < sizeOfConfiguration( groupConfig.getProperty("group.[@id]")); groupsIdx++) { String groupId = groupConfig.getString("group(" + groupsIdx + ").[@id]"); String groupName = arrayToString(groupConfig.getStringArray("group(" + groupsIdx + ").[@name]")); String groupDescription = arrayToString( groupConfig.getStringArray("group(" + groupsIdx + ").[@description]")); long groupAddress = groupConfig.getLong("group(" + groupsIdx + ").[@address]"); GroupImpl group = new GroupImpl(groupId, groupName, groupDescription, groupAddress); // add part to parent part if (parent instanceof ViewFunctionalImpl) ((ViewFunctionalImpl) parent).addGroup(group); else if (parent instanceof GroupImpl) ((GroupImpl) parent).addGroup(group); else/*from w w w . j av a2 s .com*/ parent.add(group); objectBroker.addObj(group, true); // add instances to part HierarchicalConfiguration concreteGroup = groupConfig.configurationAt("group(" + groupsIdx + ")"); for (int instanceIdx = 0; instanceIdx < sizeOfConfiguration( concreteGroup.getProperty("instance.[@id]")); instanceIdx++) { String instanceId = concreteGroup.getString("instance(" + instanceIdx + ").[@id]"); String connector = concreteGroup.getString("instance(" + instanceIdx + ").[@connector]"); try { DatapointImpl dp = datapointById.get(instanceId); if (dp == null) { log.warning("No datapoint type found for instance: " + instanceId); continue; } Class<?> clazz = dp.getClass(); if (clazz != null) { Constructor<?> constructor = clazz.getConstructor(KNXConnector.class, DataPointInit.class); Object[] object = new Object[2]; object[0] = knxConnector; DataPointInit dptInit = new DataPointInit(); dptInit.setName("function"); dptInit.setReadable(dp.isValueReadable()); dptInit.setWritable(dp.isValueWritable()); dptInit.setGroupAddress( new GroupAddress(Integer.parseInt(groupAddressByDatapointId.get(instanceId)))); object[1] = dptInit; DatapointImpl dataPoint = (DatapointImpl) constructor.newInstance(object); group.addFunction(dataPoint); objectBroker.addObj(dataPoint, true); } } catch (Exception e) { e.printStackTrace(); } group.addInstance(datapointById.get(instanceId), connector); } // recursively add more parts parseFunctionalView(concreteGroup, group, n, objectBroker, entityById, datapointById, knxConnector, groupAddressByDatapointId); } }