    001/*-
    002 *******************************************************************************
    003 * Copyright (c) 2011, 2016 Diamond Light Source Ltd.
    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 *
    009 * Contributors:
    010 *    Peter Chang - initial API and implementation and/or initial documentation
    011 *******************************************************************************/
    012
    013package org.eclipse.january.metadata;
    014
    015import org.eclipse.january.dataset.ILazyDataset;
    016import org.eclipse.january.dataset.Slice;
    017
    018/**
    019 * Defines the origin of a dataset which is a slice of a parent dataset
    020 */
    021public interface OriginMetadata extends DimensionMetadata {
    022
    023        /**
    024         * Initialize origin of dataset
    025         * @param parent
    026         * @param outSlice
    027         * @param dataDims
    028         * @param filePath
    029         * @param datasetName
    030         */
    031        public void initialize(ILazyDataset parent, Slice[] outSlice, int[] dataDims, String filePath, String datasetName);
    032
    033        /**
    034         *
    035         * @return ILazyDataset
    036         */
    037        public ILazyDataset getParent();
    038
    039        /**
    040         * The starting slice
    041         * @return the initial slice
    042         */
    043        public Slice[] getSliceFromInput();
    044
    045        /**
    046         *
    047         * @return name of dataset
    048         */
    049        public String getDatasetName();
    050
    051        /**
    052         *
    053         * @return file path
    054         */
    055        public String getFilePath();
    056
    057        /**
    058         * Current slice information.
    059         * @return the current slice.
    060         */
    061        public Slice[] getSliceInOutput();
    062
    063}