001package jmri;
002
003/**
004 * Interface for obtaining AnalogIOs.
005 * 
006 * @author Daniel Bergqvist Copyright (C) 2020
007 */
008public interface AnalogIOManager extends Manager<AnalogIO> {
009
010    /**
011     * Add a type of NamedBean, for example VariableLight, that should be also registred in AnalogIOManager.
012     * @param clazz the NamedBean class that should be registered in this manager
013     * @param manager the manager that managers the NamedBeans of type clazz
014     */
015    default void addBeanType(Class<? extends AnalogIO> clazz, Manager<? extends NamedBean> manager) {
016        throw new UnsupportedOperationException();
017    }
018
019    /**
020     * Remove a type of NamedBean, for example VariableLight, from beeing registred in AnalogIOManager.
021     * @param clazz the NamedBean class that should be registered in this manager
022     * @param manager the manager that managers the NamedBeans of type clazz
023     */
024    default void removeBeanType(Class<? extends AnalogIO> clazz, Manager<? extends NamedBean> manager) {
025        throw new UnsupportedOperationException();
026    }
027
028}