diff: add annotate action to diff viewers
[idea/community.git] / platform / diff-impl / src / com / intellij / diff / tools / fragmented / ChangedBlock.java
1 /*
2  * Copyright 2000-2015 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.diff.tools.fragmented;
17
18 import com.intellij.diff.fragments.LineFragment;
19 import com.intellij.diff.fragments.LineFragmentImpl;
20 import org.jetbrains.annotations.NotNull;
21
22 class ChangedBlock {
23   private final int myStartOffset1;
24   private final int myEndOffset1;
25   private final int myStartOffset2;
26   private final int myEndOffset2;
27
28   private final int myLine1;
29   private final int myLine2;
30
31   @NotNull private final LineFragment myLineFragment;
32
33   public ChangedBlock(int startOffset1,
34                       int endOffset1,
35                       int startOffset2,
36                       int endOffset2,
37                       int line1,
38                       int line2,
39                       @NotNull LineFragment lineFragment) {
40     myStartOffset1 = startOffset1;
41     myEndOffset1 = endOffset1;
42     myStartOffset2 = startOffset2;
43     myEndOffset2 = endOffset2;
44     myLine1 = line1;
45     myLine2 = line2;
46     myLineFragment = lineFragment;
47   }
48
49   @NotNull
50   public static ChangedBlock createInserted(int length, int lines) {
51     LineFragmentImpl lineFragment = new LineFragmentImpl(0, 0, 0, lines, 0, 0, 0, length);
52     return new ChangedBlock(0, 0, 0, length, 0, lines, lineFragment);
53   }
54
55   @NotNull
56   public static ChangedBlock createDeleted(int length, int lines) {
57     LineFragmentImpl lineFragment = new LineFragmentImpl(0, lines, 0, 0, 0, length, 0, 0);
58     return new ChangedBlock(0, length, 0, 0, 0, lines, lineFragment);
59   }
60
61   public int getStartOffset1() {
62     return myStartOffset1;
63   }
64
65   public int getEndOffset1() {
66     return myEndOffset1;
67   }
68
69   public int getStartOffset2() {
70     return myStartOffset2;
71   }
72
73   public int getEndOffset2() {
74     return myEndOffset2;
75   }
76
77   public int getLine1() {
78     return myLine1;
79   }
80
81   public int getLine2() {
82     return myLine2;
83   }
84
85   @NotNull
86   public LineFragment getLineFragment() {
87     return myLineFragment;
88   }
89 }