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