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