1
+ package minimized ;
2
+
3
+ import java .lang .reflect .Constructor ;
4
+ // ^^^^ reference semanticdb maven . . java/
5
+ // ^^^^ reference semanticdb maven . . java/lang/
6
+ // ^^^^^^^ reference semanticdb maven . . java/lang/reflect/
7
+ // ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/reflect/Constructor#
8
+ import java .lang .reflect .InvocationHandler ;
9
+ // ^^^^ reference semanticdb maven . . java/
10
+ // ^^^^ reference semanticdb maven . . java/lang/
11
+ // ^^^^^^^ reference semanticdb maven . . java/lang/reflect/
12
+ // ^^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/reflect/InvocationHandler#
13
+ import java .util .concurrent .ConcurrentHashMap ;
14
+ // ^^^^ reference semanticdb maven . . java/
15
+ // ^^^^ reference semanticdb maven . . java/util/
16
+ // ^^^^^^^^^^ reference semanticdb maven . . java/util/concurrent/
17
+ // ^^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/concurrent/ConcurrentHashMap#
18
+ import java .util .concurrent .ConcurrentMap ;
19
+ // ^^^^ reference semanticdb maven . . java/
20
+ // ^^^^ reference semanticdb maven . . java/util/
21
+ // ^^^^^^^^^^ reference semanticdb maven . . java/util/concurrent/
22
+ // ^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/concurrent/ConcurrentMap#
23
+ import java .util .function .Function ;
24
+ // ^^^^ reference semanticdb maven . . java/
25
+ // ^^^^ reference semanticdb maven . . java/util/
26
+ // ^^^^^^^^ reference semanticdb maven . . java/util/function/
27
+ // ^^^^^^^^ reference semanticdb maven jdk 11 java/util/function/Function#
28
+
29
+ public interface AnnotationsOnParameterizedTypes {
30
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypes#
31
+ // documentation ```java\npublic interface AnnotationsOnParameterizedTypes\n```
32
+
33
+ public static AnnotationsOnParameterizedTypes getInstance () {
34
+ return new AnnotationsOnParameterizedTypesImpl ();
35
+ }
36
+
37
+ <C , W > Function <W , C > adapter (Class <C > contract , Class <W > wrappedClass );
38
+ }
39
+
40
+
41
+ class AnnotationsOnParameterizedTypesImpl implements AnnotationsOnParameterizedTypes {
42
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#
43
+ // documentation ```java\nclass AnnotationsOnParameterizedTypesImpl\n```
44
+ // relationship is_implementation semanticdb maven . . minimized/AnnotationsOnParameterizedTypes#
45
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#`<init>`().
46
+ // documentation ```java\nAnnotationsOnParameterizedTypesImpl()\n```
47
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypes#
48
+ private ConcurrentMap <Class <?>, Constructor <?>> proxyConstructors = new ConcurrentHashMap <>();
49
+ // ^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/concurrent/ConcurrentMap#
50
+ // ^^^^^ reference semanticdb maven jdk 11 java/lang/Class#
51
+ // ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/reflect/Constructor#
52
+ // ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#proxyConstructors.
53
+ // documentation ```java\nprivate ConcurrentMap<Class<?>, Constructor<?>> proxyConstructors\n```
54
+ // ^^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/concurrent/ConcurrentHashMap#`<init>`().
55
+
56
+ @ Override
57
+ // ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override#
58
+ public <C , W > Function <W , C > adapter (Class <C > contract , Class <W > wrappedClass ) {
59
+ // ^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().[C]
60
+ // documentation ```java\nC\n```
61
+ // ^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().[W]
62
+ // documentation ```java\nW\n```
63
+ // ^^^^^^^^ reference semanticdb maven jdk 11 java/util/function/Function#
64
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().[W]
65
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().[C]
66
+ // ^^^^^^^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().
67
+ // documentation ```java\n@Override\npublic <C, W> Function<W, C> adapter(Class<C> contract, Class<W> wrappedClass)\n```
68
+ // relationship is_reference is_implementation semanticdb maven . . minimized/AnnotationsOnParameterizedTypes#adapter().
69
+ // ^^^^^ reference semanticdb maven jdk 11 java/lang/Class#
70
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().[C]
71
+ // ^^^^^^^^ definition local 0
72
+ // documentation ```java\nClass<C> contract\n```
73
+ // ^^^^^ reference semanticdb maven jdk 11 java/lang/Class#
74
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().[W]
75
+ // ^^^^^^^^^^^^ definition local 1
76
+ // documentation ```java\nClass<W> wrappedClass\n```
77
+
78
+ Function <InvocationHandler , C > constructor = getConstructor (contract );
79
+ // ^^^^^^^^ reference semanticdb maven jdk 11 java/util/function/Function#
80
+ // ^^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/reflect/InvocationHandler#
81
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#adapter().[C]
82
+ // ^^^^^^^^^^^ definition local 2
83
+ // documentation ```java\nFunction<InvocationHandler, C> constructor\n```
84
+ // ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#getConstructor().
85
+ // ^^^^^^^^ reference local 0
86
+
87
+ System .out .println (constructor );
88
+ // ^^^^^^ reference semanticdb maven jdk 11 java/lang/System#
89
+ // ^^^ reference semanticdb maven jdk 11 java/lang/System#out.
90
+ // ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+9).
91
+ // ^^^^^^^^^^^ reference local 2
92
+
93
+ return null ;
94
+ }
95
+
96
+ private <T > Function <InvocationHandler , T > getConstructor (Class <T > contract ) {
97
+ // ^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#getConstructor().[T]
98
+ // documentation ```java\nT\n```
99
+ // ^^^^^^^^ reference semanticdb maven jdk 11 java/util/function/Function#
100
+ // ^^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/reflect/InvocationHandler#
101
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#getConstructor().[T]
102
+ // ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#getConstructor().
103
+ // documentation ```java\nprivate <T> Function<InvocationHandler, T> getConstructor(Class<T> contract)\n```
104
+ // ^^^^^ reference semanticdb maven jdk 11 java/lang/Class#
105
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#getConstructor().[T]
106
+ // ^^^^^^^^ definition local 3
107
+ // documentation ```java\nClass<T> contract\n```
108
+ @ SuppressWarnings ("unchecked" )
109
+ // ^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings#
110
+ Constructor <T > constructor = (Constructor <T >) proxyConstructors .computeIfAbsent (contract , c -> {
111
+ // ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/reflect/Constructor#
112
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#getConstructor().[T]
113
+ // ^^^^^^^^^^^ definition local 4
114
+ // documentation ```java\n@SuppressWarnings("unchecked")\nConstructor<T> constructor\n```
115
+ // ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/reflect/Constructor#
116
+ // ^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#getConstructor().[T]
117
+ // ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/AnnotationsOnParameterizedTypesImpl#proxyConstructors.
118
+ // ^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/concurrent/ConcurrentMap#computeIfAbsent().
119
+ // ^^^^^^^^ reference local 3
120
+ // ^ definition local 5
121
+ // documentation ```java\nClass<?> c\n```
122
+ return null ;
123
+ });
124
+
125
+ System .out .println (constructor );
126
+ // ^^^^^^ reference semanticdb maven jdk 11 java/lang/System#
127
+ // ^^^ reference semanticdb maven jdk 11 java/lang/System#out.
128
+ // ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+9).
129
+ // ^^^^^^^^^^^ reference local 4
130
+
131
+ return null ;
132
+ }
133
+ }
0 commit comments