Merge branch 'nz/shared_shelf'
[idea/community.git] / platform / vcs-impl / src / com / intellij / codeInsight / CodeSmellInfo.java
1 /*
2  * Copyright 2000-2009 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.codeInsight;
17
18 import com.intellij.lang.annotation.HighlightSeverity;
19 import com.intellij.openapi.editor.Document;
20 import com.intellij.openapi.util.TextRange;
21 import org.jetbrains.annotations.NotNull;
22
23 /**
24  * The information about a single problem found during pre-checkin code analysis.
25  *
26  * @since 5.1
27  * @see com.intellij.openapi.vcs.CodeSmellDetector#findCodeSmells(java.util.List)
28  * @see com.intellij.openapi.vcs.CodeSmellDetector#showCodeSmellErrors(java.util.List)
29  */
30 public final class CodeSmellInfo {
31   @NotNull private final Document myDocument;
32   private final String myDescription;
33   private final TextRange myTextRange;
34   private final HighlightSeverity mySeverity;
35
36   public CodeSmellInfo(@NotNull final Document document, final String description, final TextRange textRange, final HighlightSeverity severity) {
37     myDocument = document;
38     myDescription = description;
39     myTextRange = textRange;
40     mySeverity = severity;
41   }
42
43   @NotNull public Document getDocument() {
44     return myDocument;
45   }
46
47   public String getDescription() {
48     return myDescription;
49   }
50
51   public TextRange getTextRange(){
52     return myTextRange;
53   }
54
55   public HighlightSeverity getSeverity(){
56     return mySeverity;
57   }
58
59   public int getStartLine() {
60     return getDocument().getLineNumber(getTextRange().getStartOffset());
61   }
62
63   public int getStartColumn() {
64     return getTextRange().getStartOffset() - getDocument().getLineStartOffset(getStartLine());
65   }
66 }