001///////////////////////////////////////////////////////////////////////////////////////////////
002// checkstyle: Checks Java source code and other text files for adherence to a set of rules.
003// Copyright (C) 2001-2025 the original author or authors.
004//
005// This library is free software; you can redistribute it and/or
006// modify it under the terms of the GNU Lesser General Public
007// License as published by the Free Software Foundation; either
008// version 2.1 of the License, or (at your option) any later version.
009//
010// This library is distributed in the hope that it will be useful,
011// but WITHOUT ANY WARRANTY; without even the implied warranty of
012// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013// Lesser General Public License for more details.
014//
015// You should have received a copy of the GNU Lesser General Public
016// License along with this library; if not, write to the Free Software
017// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018///////////////////////////////////////////////////////////////////////////////////////////////
019
020package com.puppycrawl.tools.checkstyle.api;
021
022/**
023 * A block of text from an input file that does not necessarily
024 * have any grammatical structure.
025 *
026 */
027public interface TextBlock {
028
029 /**
030 * The text content of the text block.
031 * Each line is represented by one array entry.
032 * The linebreak characters are not part of the text content.
033 *
034 * @return the text content of the text block.
035 */
036 String[] getText();
037
038 /**
039 * The line in the input file where the text block starts.
040 * Counting starts from 1.
041 *
042 * @return first line of the text block
043 */
044 int getStartLineNo();
045
046 /**
047 * The last line of the text block in the input file.
048 * Counting starts from 1.
049 *
050 * @return last line of the text block
051 */
052 int getEndLineNo();
053
054 /**
055 * The column in the input file where the text block starts.
056 * Counting starts from 0.
057 *
058 * @return first line of the text block
059 */
060 int getStartColNo();
061
062 /**
063 * The column in the input file where the text block ends.
064 * Counting starts from 0.
065 *
066 * @return last line of the text block
067 */
068 int getEndColNo();
069
070 /**
071 * Checks if this comment intersects with a specified
072 * part of the file.
073 *
074 * @param startLineNo the starting line number in the file
075 * @param startColNo the starting column number in the file
076 * @param endLineNo the ending line number in the file
077 * @param endColNo the ending column number in the file
078 * @return true if the positions intersects with this comment.
079 */
080 boolean intersects(int startLineNo, int startColNo,
081 int endLineNo, int endColNo);
082
083}