001    package org.bukkit.block;
002    
003    /**
004     * Represents either a SignPost or a WallSign
005     */
006    public interface Sign extends BlockState {
007    
008        /**
009         * Gets all the lines of text currently on this sign.
010         *
011         * @return Array of Strings containing each line of text
012         */
013        public String[] getLines();
014    
015        /**
016         * Gets the line of text at the specified index.
017         * <p>
018         * For example, getLine(0) will return the first line of text.
019         *
020         * @param index Line number to get the text from, starting at 0
021         * @throws IndexOutOfBoundsException Thrown when the line does not exist
022         * @return Text on the given line
023         */
024        public String getLine(int index) throws IndexOutOfBoundsException;
025    
026        /**
027         * Sets the line of text at the specified index.
028         * <p>
029         * For example, setLine(0, "Line One") will set the first line of text to
030         * "Line One".
031         *
032         * @param index Line number to set the text at, starting from 0
033         * @param line New text to set at the specified index
034         * @throws IndexOutOfBoundsException If the index is out of the range 0..3
035         */
036        public void setLine(int index, String line) throws IndexOutOfBoundsException;
037    }