001package jmri.jmrit.logixng.actions; 002 003import jmri.*; 004 005/** 006 * Enum of common managers. 007 * 008 * @author Daniel Bergqvist (C) 2023 009 */ 010public enum CommonManager { 011 012 Sensors(() -> InstanceManager.getNullableDefault(SensorManager.class), Bundle.getMessage("CommonManager_Sensors")), 013 Turnouts(() -> InstanceManager.getNullableDefault(TurnoutManager.class), Bundle.getMessage("CommonManager_Turnouts")), 014 Lights(() -> InstanceManager.getNullableDefault(LightManager.class), Bundle.getMessage("CommonManager_Lights")), 015 SignalHeads(() -> InstanceManager.getNullableDefault(SignalHeadManager.class), Bundle.getMessage("CommonManager_SignalHeads")), 016 SignalMasts(() -> InstanceManager.getNullableDefault(SignalMastManager.class), Bundle.getMessage("CommonManager_SignalMasts")), 017 Routes(() -> InstanceManager.getNullableDefault(RouteManager.class), Bundle.getMessage("CommonManager_Routes")), 018 Blocks(() -> InstanceManager.getNullableDefault(BlockManager.class), Bundle.getMessage("CommonManager_Blocks")), 019 OBlocks(() -> InstanceManager.getNullableDefault(jmri.jmrit.logix.OBlockManager.class), Bundle.getMessage("CommonManager_OBlocks")), 020 Reporters(() -> InstanceManager.getNullableDefault(ReporterManager.class), Bundle.getMessage("CommonManager_Reporters")), 021 Memories(() -> InstanceManager.getNullableDefault(MemoryManager.class), Bundle.getMessage("CommonManager_Memories")), 022 Audio(() -> InstanceManager.getNullableDefault(AudioManager.class), Bundle.getMessage("CommonManager_Audio")), 023 LayoutBlocks(() -> InstanceManager.getNullableDefault(jmri.jmrit.display.layoutEditor.LayoutBlockManager.class), Bundle.getMessage("CommonManager_LayoutBlocks")), 024 EntryExit(() -> InstanceManager.getNullableDefault(jmri.jmrit.entryexit.EntryExitPairs.class), Bundle.getMessage("CommonManager_EntryExit")), 025 Warrants(() -> InstanceManager.getNullableDefault(jmri.jmrit.logix.WarrantManager.class), Bundle.getMessage("CommonManager_Warrants")), 026 Sections(() -> InstanceManager.getNullableDefault(SectionManager.class), Bundle.getMessage("CommonManager_Sections")), 027 Transits(() -> InstanceManager.getNullableDefault(TransitManager.class), Bundle.getMessage("CommonManager_Transits")); 028 029 private final String _description; 030 private final GetManager _getManager; 031 private Manager<? extends NamedBean> _manager; 032 033 private CommonManager(GetManager getManager, String description) { 034 _getManager = getManager; 035 _manager = _getManager.getManager(); 036 _description = description; 037 } 038 039 public Manager<? extends NamedBean> getManager() { 040 return _manager; 041 } 042 043 @Override 044 public String toString() { 045 return _description; 046 } 047 048 // This method is used by test classes to reset this enum. 049 // Each test resets the InstanceManager so we need to reset the 050 // managers in this enum. 051 public static void reset() { 052 for (CommonManager manager : CommonManager.values()) { 053 manager._manager = manager._getManager.getManager(); 054 } 055 } 056 057 private interface GetManager { 058 059 Manager<? extends NamedBean> getManager(); 060 } 061 062}