@Override
            public void handle(IAsyncResult<ApiContract> result) {
                if (result.isSuccess()) {
                    ApiContract contract = result.getResult();
                    List<Policy> policies = contract.getPolicies();
                    decryptPolicies(contract.getClient().getOrganizationId(),
                            contract.getClient().getClientId(), contract.getClient().getVersion(),
                            EntityType.ClientApp, policies);
                    Api api = contract.getApi();
                    if (api != null) {
                        List<Policy> apiPolicies = api.getApiPolicies();
                        decryptPolicies(api.getOrganizationId(), api.getApiId(), api.getVersion(),
                                EntityType.Api, apiPolicies);
                        decryptEndpointProperties(api.getOrganizationId(), api.getApiId(),
                                api.getVersion(), EntityType.Api, api.getEndpointProperties());
                    }
                }
                handler.handle(result);
            }
@see io.apiman.gateway.engine.IRegistry#getContract(java.lang.String, 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