LocatorI.java

// Copyright (c) ZeroC, Inc.

package com.zeroc.IceDiscovery;

import com.zeroc.Ice.AsyncLocator;
import com.zeroc.Ice.Current;
import com.zeroc.Ice.Identity;
import com.zeroc.Ice.LocatorRegistryPrx;
import com.zeroc.Ice.ObjectPrx;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;

class LocatorI implements AsyncLocator {
    public LocatorI(LookupI lookup, LocatorRegistryPrx registry) {
        _lookup = lookup;
        _registry = registry;
    }

    @Override
    public CompletionStage<ObjectPrx> findObjectByIdAsync(Identity id, Current current) {
        CompletableFuture<ObjectPrx> f = new CompletableFuture<ObjectPrx>();
        _lookup.findObject(f, id);
        return f;
    }

    @Override
    public CompletionStage<ObjectPrx> findAdapterByIdAsync(String adapterId, Current current) {
        CompletableFuture<ObjectPrx> f = new CompletableFuture<ObjectPrx>();
        _lookup.findAdapter(f, adapterId);
        return f;
    }

    @Override
    public CompletionStage<LocatorRegistryPrx> getRegistryAsync(Current current) {
        return CompletableFuture.completedFuture(_registry);
    }

    private final LookupI _lookup;
    private final LocatorRegistryPrx _registry;
}