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 of dataset
026         * @param outSlice output
027         * @param dataDims dimensions of parent dataset
028         * @param filePath location of file
029         * @param datasetName path in file
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}