    001/*-
    002 * Copyright 2016 Diamond Light Source Ltd.
    003 *
    004 * All rights reserved. This program and the accompanying materials
    005 * are made available under the terms of the Eclipse Public License v1.0
    006 * which accompanies this distribution, and is available at
    007 * http://www.eclipse.org/legal/epl-v10.html
    008 */
    009package org.eclipse.january.dataset;
    010
    011import java.util.Map;
    012
    013/**
    014 * This class provides access to remote data which
    015 * may consist of more than one remote dataset. It
    016 * provides meta information about the contents of
    017 * the remote data which can be used to determine
    018 * which remote dataset to open. It provides a convenience
    019 * method for creating a remote dataset which must
    020 * be connected when it is returned but must be disconnected
    021 * or its parent IRemoteData disconnected at some point
    022 * later to close the connection with the server.
    023 */
    024public interface IRemoteData extends IFileConnection {
    025
    026        /**
    027         * Map of path to collection of attributes at that path.
    028         * @return NeXus meta-data objects in most instances.
    029         * @throws Exception when cannot retrieve tree
    030         */
    031        public Map<String, Object> getTree() throws Exception;
    032
    033        /**
    034         * Create a remote dataset looking at the dataset path named.
    035         * connect() before use and disconnect() after use must be performed.
    036         *
    037         * @param datasetPath path in tree to dataset
    038         * @return IRemoteDataset
    039         * @throws Exception when cannot connect to dataset
    040         */
    041        public IDatasetConnector createRemoteDataset(String datasetPath) throws Exception;
    042}