@@ -0,0 +1,1886 @@
+/*%0A * Copyright 2009-2010 by The Regents of the University of California%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * you may obtain a copy of the License from%0A * %0A *     http://www.apache.org/licenses/LICENSE-2.0%0A * %0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage edu.uci.ics.hyracks.control.cc.dataset;%0A%0Aimport java.util.Arrays;%0A%0Aimport edu.uci.ics.hyracks.api.comm.NetworkAddress;%0Aimport edu.uci.ics.hyracks.api.dataset.IDatasetDirectoryService;%0Aimport edu.uci.ics.hyracks.api.exceptions.HyracksDataException;%0A%0Apublic class DatasetDirectoryService implements IDatasetDirectoryService %7B%0A    private NetworkAddress%5B%5D partitionLocations;%0A%0A    public DatasetDirectoryService() %7B%0A        partitionLocations = null;%0A    %7D%0A%0A    @Override%0A    public synchronized void registerResultPartitionLocation(int partition, int nPartitions,%0A            NetworkAddress networkAddress) %7B%0A        if (partitionLocations == null) %7B%0A            partitionLocations = new NetworkAddress%5BnPartitions%5D;%0A        %7D%0A%0A        partitionLocations%5Bpartition%5D = networkAddress;%0A        notifyAll();%0A    %7D%0A%0A    @Override%0A    public synchronized NetworkAddress%5B%5D getResultPartitionLocations(NetworkAddress%5B%5D knownLocations)%0A            throws HyracksDataException %7B%0A        while (Arrays.equals(partitionLocations, knownLocations)) %7B%0A            try %7B%0A                wait();%0A            %7D catch (InterruptedException e) %7B%0A                throw new HyracksDataException(e);%0A            %7D%0A        %7D%0A        return partitionLocations;%0A    %7D%0A%7D

Implement the core DatasetDirectoryService class.