001package jmri; 002 003import javax.annotation.CheckForNull; 004 005/** 006 * Interface for obtaining information about signal systems. 007 * <p> 008 * Each NamedBean here represents a single signal system. The actual objects are 009 * SignalAspectTable objects; that's a current anachronism, soon to be fixed. 010 * <p> 011 * See the common implementation for information on how loaded, etc. 012 * 013 * <hr> 014 * This file is part of JMRI. 015 * <p> 016 * JMRI is free software; you can redistribute it and/or modify it under the 017 * terms of version 2 of the GNU General Public License as published by the Free 018 * Software Foundation. See the "COPYING" file for a copy of this license. 019 * <p> 020 * JMRI is distributed in the hope that it will be useful, but WITHOUT ANY 021 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 022 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 023 * 024 * @author Bob Jacobsen Copyright (C) 2009 025 */ 026public interface SignalSystemManager extends Manager<SignalSystem> { 027 028 /** 029 * Get SignalSystem by Name. 030 * @param name to search for. 031 * @return SignalSystem or null if no system found. 032 */ 033 @CheckForNull 034 SignalSystem getSystem(String name); 035 036 /** {@inheritDoc} */ 037 @Override 038 @CheckForNull 039 SignalSystem getBySystemName(String name); 040 041 /** {@inheritDoc} */ 042 @Override 043 @CheckForNull 044 SignalSystem getByUserName(String name); 045}