001package jmri.jmrix.bidib;
002
003/**
004 * This interface specifies methods that the BiDiB object classes (turnouts, sensors, lights, reporters, signal masts) must implement.
005 * 
006 * @author Eckart Meyer Copyright (C) 2020-2023
007 */
008public interface BiDiBNamedBeanInterface {
009    
010    /**
011     * Get the BiDiB address instance
012     * 
013     * @return BiDiBAddress
014     */
015    public BiDiBAddress getAddr();
016    
017    /**
018     * Helper function that will be invoked after construction once the type has been
019     * set. Used specifically for preventing double initialization when loading turnouts from XML.
020     */
021    public default void finishLoad() {}
022    
023    /**
024     * called then a new node has been discovered
025     */
026    public void nodeNew();
027
028    /**
029     * called then a node was lost
030     */
031    public void nodeLost();
032    
033}