9
9
import com .intellij .util .io .KeyDescriptor ;
10
10
import fr .adrienbrault .idea .symfony2plugin .Symfony2ProjectComponent ;
11
11
import fr .adrienbrault .idea .symfony2plugin .form .util .FormUtil ;
12
- import fr .adrienbrault .idea .symfony2plugin .stubs .indexes .externalizer .ArrayDataExternalizer ;
12
+ import fr .adrienbrault .idea .symfony2plugin .stubs .indexes .externalizer .StringSetDataExternalizer ;
13
13
import gnu .trove .THashMap ;
14
14
import org .jetbrains .annotations .NotNull ;
15
15
import org .jetbrains .yaml .YAMLFileType ;
19
19
import java .util .Set ;
20
20
21
21
22
- public class ServicesTagStubIndex extends FileBasedIndexExtension <String , String [] > {
22
+ public class ServicesTagStubIndex extends FileBasedIndexExtension <String , Set < String > > {
23
23
24
- public static final ID <String , String [] > KEY = ID .create ("fr.adrienbrault.idea.symfony2plugin.service_tags" );
24
+ public static final ID <String , Set < String > > KEY = ID .create ("fr.adrienbrault.idea.symfony2plugin.service_tags" );
25
25
private final KeyDescriptor <String > myKeyDescriptor = new EnumeratorStringDescriptor ();
26
26
27
27
@ NotNull
28
28
@ Override
29
- public DataIndexer <String , String [] , FileContent > getIndexer () {
29
+ public DataIndexer <String , Set < String > , FileContent > getIndexer () {
30
30
31
- return new DataIndexer <String , String [], FileContent >() {
32
- @ NotNull
33
- @ Override
34
- public Map <String , String []> map (@ NotNull FileContent inputData ) {
31
+ return inputData -> {
35
32
36
- Map <String , String []> map = new THashMap <String , String [] >();
33
+ Map <String , Set < String >> map = new THashMap <>();
37
34
38
- PsiFile psiFile = inputData .getPsiFile ();
39
- if (!Symfony2ProjectComponent .isEnabledForIndex (psiFile .getProject ())) {
40
- return map ;
41
- }
42
-
43
- if (!ServicesDefinitionStubIndex .isValidForIndex (inputData , psiFile )) {
44
- return map ;
45
- }
46
-
47
- if (psiFile instanceof YAMLFile ) {
48
- this .attachSet (FormUtil .getTags ((YAMLFile ) psiFile ), map );
49
- }
50
-
51
- if (psiFile instanceof XmlFile ) {
52
- this .attachSet (FormUtil .getTags ((XmlFile ) psiFile ), map );
53
- }
35
+ PsiFile psiFile = inputData .getPsiFile ();
36
+ if (!Symfony2ProjectComponent .isEnabledForIndex (psiFile .getProject ())) {
37
+ return map ;
38
+ }
54
39
40
+ if (!ServicesDefinitionStubIndex .isValidForIndex (inputData , psiFile )) {
55
41
return map ;
56
42
}
57
43
58
- private void attachSet (Map <String , Set <String >> source , Map <String , String []> target ) {
59
- for (Map .Entry <String , Set <String >> entry : source .entrySet ()) {
60
- Set <String > key = entry .getValue ();
61
- target .put (entry .getKey (), key .toArray (new String [key .size ()]));
62
- }
44
+ if (psiFile instanceof YAMLFile ) {
45
+ map .putAll (FormUtil .getTags ((YAMLFile ) psiFile ));
46
+ }
47
+
48
+ if (psiFile instanceof XmlFile ) {
49
+ map .putAll (FormUtil .getTags ((XmlFile ) psiFile ));
63
50
}
64
51
52
+ return map ;
65
53
};
66
54
}
67
55
68
56
@ NotNull
69
57
@ Override
70
- public ID <String , String [] > getName () {
58
+ public ID <String , Set < String > > getName () {
71
59
return KEY ;
72
60
}
73
61
@@ -78,8 +66,8 @@ public KeyDescriptor<String> getKeyDescriptor() {
78
66
}
79
67
80
68
@ NotNull
81
- public DataExternalizer <String [] > getValueExternalizer () {
82
- return new ArrayDataExternalizer ();
69
+ public DataExternalizer <Set < String > > getValueExternalizer () {
70
+ return new StringSetDataExternalizer ();
83
71
}
84
72
85
73
@ NotNull
0 commit comments