@Override
    public void getApi(String organizationId, String apiId, String apiVersion,
            final IAsyncResultHandler<Api> handler) {
        delegate.getApi(organizationId, apiId, apiVersion, new IAsyncResultHandler<Api>() {
            @Override
            public void handle(IAsyncResult<Api> result) {
                if (result.isSuccess()) {
                    Api api = result.getResult();
                    if (api != null) {
                        List<Policy> policies = api.getApiPolicies();
                        decryptPolicies(organizationId, apiId, apiVersion, EntityType.Api, policies);
                        decryptEndpointProperties(organizationId, apiId, apiVersion, EntityType.Api, api.getEndpointProperties());
                    }
                }
                handler.handle(result);
            }
        });
    }
@see io.apiman.gateway.engine.IRegistry#getApi(java.lang.String, java.lang.String, java.lang.String, io.apiman.gateway.engine.async.IAsyncResultHandler)
gateway/engine/core/src/main/java/io/apiman/gateway/engine/impl/SecureRegistryWrapper.java