/** * 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.zwave.internal.protocol.commandclass; import java.util.Collection; import org.openhab.binding.zwave.internal.protocol.SerialMessage; /** * Interface that command classes can implement to implement initialization. * For instance to support getting static values from a node, or handle dependencies * on other command classes. * * @author Jan-Willem Spuij * @author Chris Jackson * @since 1.3.0 */ public interface ZWaveCommandClassInitialization { /** * Initializes a command class. During initialization some queries might need * to be performed. These queries need to be completed to be able to proceed to the next * node phase. The queries are returned so that the node can handle processing and counting * to proceed to the next node phase. * * @param refresh if true will request all initialised even if the class is already initialised * @return the messages with the queries for initialization. */ public Collection<SerialMessage> initialize(boolean refresh); }