/** * 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.internal.driver; import java.util.ArrayList; import java.util.Collections; import org.openhab.binding.insteonplm.internal.device.InsteonAddress; import org.openhab.binding.insteonplm.internal.message.Msg; import org.openhab.binding.insteonplm.internal.utils.Utils; /* * The ModemDBEntry class holds a modem device type record * an xml file. * * @author Bernd Pfrommer * @since 1.6.0 */ public class ModemDBEntry { private InsteonAddress m_address = null; private Port m_port = null; private ArrayList<Msg> m_linkRecords = new ArrayList<Msg>(); private ArrayList<Byte> m_controls = new ArrayList<Byte>(); private ArrayList<Byte> m_respondsTo = new ArrayList<Byte>(); public ModemDBEntry(InsteonAddress aAddr) { m_address = aAddr; } public ArrayList<Msg> getLinkRecords() { return m_linkRecords; } public void addLinkRecord(Msg m) { m_linkRecords.add(m); } public void addControls(byte c) { m_controls.add(c); } public ArrayList<Byte> getControls() { return m_controls; } public void addRespondsTo(byte r) { m_respondsTo.add(r); } public ArrayList<Byte> getRespondsTo() { return m_respondsTo; } public void setPort(Port p) { m_port = p; } public Port getPort() { return m_port; } @Override public String toString() { String s = "addr:" + m_address + "|controls:[" + toGroupString(m_controls) + "]|responds_to:[" + toGroupString(m_respondsTo) + "]|link_recors"; for (Msg m : m_linkRecords) { s += ":(" + m + ")"; } return s; } private String toGroupString(ArrayList<Byte> group) { ArrayList<Byte> sorted = new ArrayList<Byte>(group); Collections.sort(sorted); StringBuffer buf = new StringBuffer(); for (Byte b : sorted) { if (buf.length() > 0) { buf.append(","); } buf.append("0x"); buf.append(Utils.getHexString(b)); } return buf.toString(); } }