/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.insteonplm; import java.util.HashMap; import java.util.Map.Entry; import org.openhab.binding.insteonplm.internal.device.InsteonAddress; import org.openhab.core.binding.BindingConfig; /** * Holds binding configuration * * @author Bernd Pfrommer * @author Daniel Pfrommer * @since 1.5.0 */ public class InsteonPLMBindingConfig implements BindingConfig { /** * Constructor * * @param adr is the Insteon address (format xx.xx.xx) as a string * @param params arguments given in the binding file, as key-value pairs */ public InsteonPLMBindingConfig(String name, InsteonAddress adr, String feature, String productKey, HashMap<String, String> params) { this.itemName = name; this.address = adr; this.feature = feature; this.productKey = productKey; this.params = params; } private final String itemName; private final InsteonAddress address; private final String feature; private final String productKey; private final HashMap<String, String> params; /** * Returns insteon address of device bound to item * * @return address of device */ public InsteonAddress getAddress() { return address; } /** * Returns the feature of the device bound to item * * @return feature of device */ public String getFeature() { return feature; } /** * Returns the name of the item to which this configuration belongs * * @return name of item */ public String getItemName() { return itemName; } /** * Returns the product key of the device. The product key * must be unique for each device type, and is mandatory * to configure the device properly. * * @return product key */ public String getProductKey() { return productKey; } /** * Returns the arguments entered in the binding string. * * @return a map of arguments */ public HashMap<String, String> getParameters() { return params; } /** * Returns a parameter that starts with key= * * @param key * @return parameter value or null if not found */ public String getParameter(String key) { return (params == null ? null : params.get(key)); } @Override public String toString() { String s = "addr=" + ((address != null) ? address.toString() : "null_address"); s += "|prodKey:" + String.format("%9s", ((productKey != null) ? productKey : "null_pkey")); s += "|feature:" + ((feature != null) ? feature : "null_feature"); if (params == null) { s += "|null_params"; } else { String sepChar = "|params:"; for (Entry<String, String> h : params.entrySet()) { s += sepChar + h.getKey() + "=" + h.getValue(); sepChar = ","; } } return (s); } }