001package jmri.jmrit.logixng;
002
003import jmri.NamedBean;
004
005/**
006 * This interface declares an Inline LogixNG.
007 * @author Daniel Bergqvist (C) 2022
008 */
009public interface InlineLogixNG {
010
011    /**
012     * Get the LogixNG of this InlineLogixNG.
013     * @return the LogixNG or null if it has no LogixNG
014     */
015    public LogixNG getLogixNG();
016
017    /**
018     * Set the LogixNG of this InlineLogixNG.
019     * @param logixNG the LogixNG or null if remove the LogixNG from the InlineLogixNG
020     */
021    public void setLogixNG(LogixNG logixNG);
022
023    /**
024     * Set the system name for the LogixNG of this InlineLogixNG.
025     * @param systemName the system name
026     */
027    public void setLogixNG_SystemName(String systemName);
028
029    /**
030     * Setup the LogixNG of this InlineLogixNG.
031     */
032    public void setupLogixNG();
033
034    /**
035     * Get the name of this InlineLogixNG.
036     * @return the name
037     */
038    public String getNameString();
039
040    /**
041     * Get the LogixNG of this InlineLogixNG.
042     * @return the LogixNG or null if it has no LogixNG
043     */
044    public String getEditorName();
045
046    /**
047     * Get the type of item of this InlineLogixNG.
048     * @return the type
049     */
050    public String getTypeName();
051
052    /**
053     * Get the X position of this InlineLogixNG.
054     * @return the X position
055     */
056    public int getX();
057
058    /**
059     * Get the Y position of this InlineLogixNG.
060     * @return the Y position
061     */
062    public int getY();
063
064}