use of com.json.parsers.JSONParser in project openhab1-addons by openhab.
the class MCP23017GenericBindingProvider method processBindingConfiguration.
/**
* {@inheritDoc}
*/
@Override
public void processBindingConfiguration(String context, Item item, String bindingConfig) throws BindingConfigParseException {
super.processBindingConfiguration(context, item, bindingConfig);
MCP23017BindingConfig config = new MCP23017BindingConfig();
// parse bindingConfig here ...
/*
* Configuration string should be a json in the form:
* Contact Test1 "Test 1" (Tests) { mcp23017="{ address:20, pin:'A0', mode:'DIGITAL_INPUT'}" }
* Switch Test2 "Test 2" (Tests) { mcp23017="{ address:20, pin:'B0', mode:'DIGITAL_OUTPUT', defaultState:'LOW'}"
* }
*/
JsonParserFactory factory = JsonParserFactory.getInstance();
JSONParser parser = factory.newJsonParser();
@SuppressWarnings("unchecked") Map<String, Object> jsonData = parser.parseJson(bindingConfig);
try {
logger.debug("Process binding configuration in context {}", context);
config.setBusAddress(Integer.parseInt((String) jsonData.get("address"), 16));
config.setPin((Pin) MCP23017Pin.class.getField("GPIO_" + (String) jsonData.get("pin")).get(null));
config.setPinMode(PinMode.valueOf((String) jsonData.get("mode")));
if (item instanceof SwitchItem) {
config.setDefaultState(PinState.valueOf((String) jsonData.get("defaultState")));
}
} catch (IllegalArgumentException exception) {
final String message = "Illegal argument exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
} catch (IllegalAccessException exception) {
final String message = "Illegal access exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
} catch (NoSuchFieldException exception) {
final String message = "No such field exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
} catch (SecurityException exception) {
final String message = "Security exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
}
addBindingConfig(item, config);
}
use of com.json.parsers.JSONParser in project openhab1-addons by openhab.
the class MCP3424GenericBindingProvider method processBindingConfiguration.
/**
* {@inheritDoc}
*/
@Override
public void processBindingConfiguration(String context, Item item, String bindingConfig) throws BindingConfigParseException {
super.processBindingConfiguration(context, item, bindingConfig);
MCP3424BindingConfig config = new MCP3424BindingConfig(item);
// parse bindingConfig here ...
/*
* Configuration string should be a json in the form:
* Number Test1 "Test 1" (Tests) { mcp3424="{ address:6C, pin:'CH0', gain:1, resolution:12" }
* Dimmer Test2 "Test 2" (Tests) { mcp3424="{ address:6C, pin:'CH1', gain:1, resolution:12" }
*/
JsonParserFactory factory = JsonParserFactory.getInstance();
JSONParser parser = factory.newJsonParser();
@SuppressWarnings("unchecked") Map<String, Object> jsonData = parser.parseJson(bindingConfig);
try {
logger.debug("processingBindingConfiguration in context {}", context);
config.setBusAddress(Integer.parseInt((String) jsonData.get("address"), 16));
config.setPin((Pin) MCP3424Pin.class.getField("GPIO_" + (String) jsonData.get("pin")).get(null));
} catch (IllegalArgumentException exception) {
final String message = "Illegal argument exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
} catch (IllegalAccessException exception) {
final String message = "Illegal access exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
} catch (NoSuchFieldException exception) {
final String message = "No such field exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
} catch (SecurityException exception) {
final String message = "Security exception in configuration string ";
logger.error("{} '{}': {}", message, bindingConfig, exception.getMessage());
throw new BindingConfigParseException(message + "'" + bindingConfig + "'");
}
try {
config.setGain(Integer.parseInt((String) jsonData.get("gain"), 10));
} catch (Exception e) {
logger.info("No configuration for gain. Using default: {}", config.getGain());
}
try {
config.setResolution(Integer.parseInt((String) jsonData.get("resolution"), 10));
} catch (Exception e) {
logger.info("No configuration for resolution. Using default: {}", config.getResolution());
}
addBindingConfig(item, config);
}
Aggregations