1+ package it .unive .golisa .cosmossdk .util ;
2+
3+ import it .unive .golisa .golang .api .signature .ConstGoLangApiSignature ;
4+ import it .unive .golisa .golang .api .signature .FuncGoLangApiSignature ;
5+ import it .unive .golisa .golang .api .signature .MethodGoLangApiSignature ;
6+ import it .unive .golisa .golang .api .signature .TypeGoLangApiSignature ;
7+ import it .unive .golisa .golang .api .signature .VarGoLangApiSignature ;
8+ import java .util .HashMap ;
9+ import java .util .HashSet ;
10+ import java .util .Map ;
11+ import java .util .Set ;
12+
13+ public class CosmosSDKAPISignatureMapper {
14+
15+ private static CosmosSDKAPISignatureMapper instance = null ;
16+
17+ // singleton pattern
18+ public static synchronized CosmosSDKAPISignatureMapper getGoApiSignatures () {
19+ if (instance == null ) {
20+ instance = new CosmosSDKAPISignatureMapper ();
21+ }
22+ return instance ;
23+ }
24+
25+ private final Map <String , Set <ConstGoLangApiSignature >> mapConst ;
26+ private final Map <String , Set <FuncGoLangApiSignature >> mapFunc ;
27+ private final Map <String , Set <MethodGoLangApiSignature >> mapMethod ;
28+ private final Map <String , Set <TypeGoLangApiSignature >> mapType ;
29+ private final Map <String , Set <VarGoLangApiSignature >> mapVar ;
30+ private final Set <String > pkgs ;
31+
32+ private CosmosSDKAPISignatureMapper () {
33+ long t = System .currentTimeMillis ();
34+ pkgs = new HashSet <>();
35+ mapConst = new HashMap <String , Set <ConstGoLangApiSignature >>();
36+ mapFunc = new HashMap <String , Set <FuncGoLangApiSignature >>();
37+ mapMethod = new HashMap <String , Set <MethodGoLangApiSignature >>();
38+ mapType = new HashMap <String , Set <TypeGoLangApiSignature >>();
39+ mapVar = new HashMap <String , Set <VarGoLangApiSignature >>();
40+
41+ build ();
42+
43+ t = System .currentTimeMillis () - t ;
44+ System .out .println (t );
45+ }
46+
47+ public Set <String > getPackages () {
48+ return pkgs ;
49+ }
50+
51+ public Map <String , Set <ConstGoLangApiSignature >> getMapConst () {
52+ return mapConst ;
53+ }
54+
55+ public Map <String , Set <FuncGoLangApiSignature >> getMapFunc () {
56+ return mapFunc ;
57+ }
58+
59+ public Map <String , Set <MethodGoLangApiSignature >> getMapMethod () {
60+ return mapMethod ;
61+ }
62+
63+ public Map <String , Set <TypeGoLangApiSignature >> getMapType () {
64+ return mapType ;
65+ }
66+
67+ public Map <String , Set <VarGoLangApiSignature >> getMapVar () {
68+ return mapVar ;
69+ }
70+
71+ private void build () {
72+ String pkg = "telemetry" ;
73+ pkgs .add (pkg );
74+ Set <FuncGoLangApiSignature > set = new HashSet <>();
75+ set .add (new FuncGoLangApiSignature (pkg , "EnableTelemetry" , new String [] {"" } , new String [] {"" }));
76+ set .add (new FuncGoLangApiSignature (pkg , "IncrCounter" , new String [] {"float32" , "...string" } , new String [] {"" }));
77+ set .add (new FuncGoLangApiSignature (pkg , "ncrCounterWithLabels " , new String [] {"[]string" , "float32" , "[]metrics.Label" } , new String [] {"" }));
78+ set .add (new FuncGoLangApiSignature (pkg , "IsTelemetryEnabled" , new String [] {"" } , new String [] {"bool" }));
79+ set .add (new FuncGoLangApiSignature (pkg , "MeasureSince" , new String [] {"time.Time" , "...string" } , new String [] {"" }));
80+ set .add (new FuncGoLangApiSignature (pkg , "ModuleMeasureSince" , new String [] {"string" , "time.Time" , "...string" } , new String [] {"" }));
81+ set .add (new FuncGoLangApiSignature (pkg , "ModuleSetGauge" , new String [] {"string" , "float32" , "...string" } , new String [] {"" }));
82+ set .add (new FuncGoLangApiSignature (pkg , "NewLabel" , new String [] {"string" , "string" } , new String [] {"metrics.Label" }));
83+ set .add (new FuncGoLangApiSignature (pkg , "Now" , new String [] {"" } , new String [] {"time.Time" }));
84+ set .add (new FuncGoLangApiSignature (pkg , "SetGauge" , new String [] {"float32" , "...string" } , new String [] {"" }));
85+ set .add (new FuncGoLangApiSignature (pkg , "SetGaugeWithLabels" , new String [] {"[]string" , "float32" , "[]metrics.Label" } , new String [] {"" }));
86+ mapFunc .put (pkg , set );
87+
88+ }
89+
90+ }
0 commit comments