@Override public void fetchPackageDetails( final String packageName, final CatchingConsumer<String, Exception> consumer) { PyPIPackageUtil.INSTANCE.fillPackageDetails( packageName, new AsyncCallback() { @Override public void handleResult(Object result, URL url, String method) { final Hashtable details = (Hashtable) result; PyPIPackageUtil.INSTANCE.addPackageDetails(packageName, details); consumer.consume(formatPackageDetails(details)); } @Override public void handleError(Exception exception, URL url, String method) { consumer.consume(exception); } }); }