public Map searchByClassName()

in jdtls.ext/com.microsoft.java.maven.plugin/src/main/java/com/microsoft/java/maven/ArtifactSearcher.java [460:518]


    public Map<String, ArtifactResult> searchByClassName(String className) {
        final String exactSearchUrl;
        final String prefixSearchUrl;
        if (className.indexOf('.') != -1) {
            exactSearchUrl = urlPrefix + "fc:" + className + urlSuffix;
            prefixSearchUrl = urlPrefix + "fc:" + className + "*" + urlSuffix;
        } else {
            exactSearchUrl = urlPrefix + "c:" + className + urlSuffix;
            prefixSearchUrl = urlPrefix + "c:" + className + "*" + urlSuffix;
        }

        final Request exactRequest = new Request.Builder().url(exactSearchUrl).build();
        final Request prefixRequest = new Request.Builder().url(prefixSearchUrl).build();

        final CountDownLatch latch = new CountDownLatch(2);

        final String[] exactResponse = new String[] { "" };
        final String[] prefixResponse = new String[] { "" };

        client.newCall(exactRequest).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                latch.countDown();
            }

            @Override
            public void onResponse(Call call, Response response) {
                try {
                    exactResponse[0] = response.body().string();
                } catch (IOException e) {
                }
                latch.countDown();
            }
        });

        client.newCall(prefixRequest).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                latch.countDown();
            }

            @Override
            public void onResponse(Call call, Response response) {
                try {
                    prefixResponse[0] = response.body().string();
                } catch (IOException e) {
                }
                latch.countDown();
            }
        });

        try {
            latch.await();
        } catch (InterruptedException e) {
            return new HashMap<>();
        }

        return processResponse(exactResponse[0], prefixResponse[0], className);
    }