2 package com
.intellij
.find
.findUsages
;
4 import com
.intellij
.find
.FindSettings
;
5 import com
.intellij
.ide
.util
.scopeChooser
.ScopeChooserCombo
;
6 import com
.intellij
.openapi
.actionSystem
.DataContext
;
7 import com
.intellij
.openapi
.project
.Project
;
8 import com
.intellij
.openapi
.util
.UserDataHolderBase
;
9 import com
.intellij
.psi
.search
.ProjectScope
;
10 import com
.intellij
.psi
.search
.SearchScope
;
11 import org
.jetbrains
.annotations
.NotNull
;
12 import org
.jetbrains
.annotations
.Nullable
;
14 import java
.util
.List
;
19 public class FindUsagesOptions
extends UserDataHolderBase
implements Cloneable
{
20 public SearchScope searchScope
;
22 public boolean isSearchForTextOccurences
= true;
24 public boolean isUsages
= false;
25 public boolean isClassesUsages
= false;
26 public boolean isMethodsUsages
= false;
27 public boolean isFieldsUsages
= false;
28 public boolean isDerivedClasses
= false;
29 public boolean isImplementingClasses
= false;
30 public boolean isDerivedInterfaces
= false;
31 public boolean isOverridingMethods
= false;
32 public boolean isImplementingMethods
= false;
33 public boolean isIncludeSubpackages
= true;
34 public boolean isSkipImportStatements
= false;
35 public boolean isSkipPackageStatements
= false;
36 public boolean isCheckDeepInheritance
= true;
37 public boolean isIncludeInherited
= false;
38 public boolean isReadAccess
= false;
39 public boolean isWriteAccess
= false;
40 public boolean isIncludeOverloadUsages
= false;
41 public boolean isThrowUsages
= false;
43 public FindUsagesOptions(@NotNull Project project
, @Nullable final DataContext dataContext
) {
44 String defaultScopeName
= FindSettings
.getInstance().getDefaultScopeName();
45 List
<SearchScope
> predefined
= ScopeChooserCombo
.getPredefinedScopes(project
, dataContext
, true, false, false, false);
46 for (SearchScope scope
: predefined
) {
47 if (scope
.getDisplayName().equals(defaultScopeName
)) {
52 if (searchScope
== null) {
53 searchScope
= ProjectScope
.getProjectScope(project
);
57 public Object
clone() {
61 public boolean equals(final Object o
) {
62 if (this == o
) return true;
63 if (o
== null || getClass() != o
.getClass()) return false;
65 final FindUsagesOptions that
= (FindUsagesOptions
)o
;
67 if (isCheckDeepInheritance
!= that
.isCheckDeepInheritance
) return false;
68 if (isClassesUsages
!= that
.isClassesUsages
) return false;
69 if (isDerivedClasses
!= that
.isDerivedClasses
) return false;
70 if (isDerivedInterfaces
!= that
.isDerivedInterfaces
) return false;
71 if (isFieldsUsages
!= that
.isFieldsUsages
) return false;
72 if (isImplementingClasses
!= that
.isImplementingClasses
) return false;
73 if (isImplementingMethods
!= that
.isImplementingMethods
) return false;
74 if (isIncludeInherited
!= that
.isIncludeInherited
) return false;
75 if (isIncludeOverloadUsages
!= that
.isIncludeOverloadUsages
) return false;
76 if (isIncludeSubpackages
!= that
.isIncludeSubpackages
) return false;
77 if (isMethodsUsages
!= that
.isMethodsUsages
) return false;
78 if (isOverridingMethods
!= that
.isOverridingMethods
) return false;
79 if (isReadAccess
!= that
.isReadAccess
) return false;
80 if (isSearchForTextOccurences
!= that
.isSearchForTextOccurences
) return false;
81 if (isSkipImportStatements
!= that
.isSkipImportStatements
) return false;
82 if (isSkipPackageStatements
!= that
.isSkipPackageStatements
) return false;
83 if (isThrowUsages
!= that
.isThrowUsages
) return false;
84 if (isUsages
!= that
.isUsages
) return false;
85 if (isWriteAccess
!= that
.isWriteAccess
) return false;
86 if (searchScope
!= null ?
!searchScope
.equals(that
.searchScope
) : that
.searchScope
!= null) return false;
91 public int hashCode() {
93 result
= (searchScope
!= null ? searchScope
.hashCode() : 0);
94 result
= 31 * result
+ (isSearchForTextOccurences ?
1 : 0);
95 result
= 31 * result
+ (isUsages ?
1 : 0);
96 result
= 31 * result
+ (isClassesUsages ?
1 : 0);
97 result
= 31 * result
+ (isMethodsUsages ?
1 : 0);
98 result
= 31 * result
+ (isFieldsUsages ?
1 : 0);
99 result
= 31 * result
+ (isDerivedClasses ?
1 : 0);
100 result
= 31 * result
+ (isImplementingClasses ?
1 : 0);
101 result
= 31 * result
+ (isDerivedInterfaces ?
1 : 0);
102 result
= 31 * result
+ (isOverridingMethods ?
1 : 0);
103 result
= 31 * result
+ (isImplementingMethods ?
1 : 0);
104 result
= 31 * result
+ (isIncludeSubpackages ?
1 : 0);
105 result
= 31 * result
+ (isSkipImportStatements ?
1 : 0);
106 result
= 31 * result
+ (isSkipPackageStatements ?
1 : 0);
107 result
= 31 * result
+ (isCheckDeepInheritance ?
1 : 0);
108 result
= 31 * result
+ (isIncludeInherited ?
1 : 0);
109 result
= 31 * result
+ (isReadAccess ?
1 : 0);
110 result
= 31 * result
+ (isWriteAccess ?
1 : 0);
111 result
= 31 * result
+ (isIncludeOverloadUsages ?
1 : 0);
112 result
= 31 * result
+ (isThrowUsages ?
1 : 0);