    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
    015
    016import java.io.File;
    017import java.util.Date;
    018
    019/**
    020 * This is an interface that has been designed to add information about a file in addition to
    021 * information which has been implemented in IMetadata.
    022 * <p>
    023 * It is intended that implementations of this interface will be through an adapter
    024 */
    025public interface IExtendedMetadata extends IMetadata {
    026
    027        /**
    028         * Initialize with a file
    029         * @param f file
    030         */
    031        public void initialize(File f);
    032
    033        /**
    034         * This should be the timestamp of when the experiment or measurement took place which should
    035         * be recorded in the header of the file, if applicable
    036         *
    037         * @return a date object to represent when the data was created
    038         */
    039        public Date getCreation();
    040
    041        /**
    042         * @return a date object that indicated when the data was last modified
    043         */
    044        public Date getLastModified();
    045
    046        /**
    047         * @return a string representing the user who created the file
    048         */
    049        public String getCreator();
    050
    051        /**
    052         * @return a string containing the filename
    053         */
    054        public String getFileName();
    055
    056        /**
    057         * @return the owner of the file
    058         */
    059        public String getFileOwner();
    060
    061        /**
    062         * @return a long representing the size of the file in bytes
    063         */
    064        public long getFileSize();
    065
    066        /**
    067         * @return the full path string of the file
    068         */
    069        public String getFullPath();
    070
    071        /**
    072         * @return The scan command as a string that was used to generate the data. This can be null as not always
    073         *         applicable
    074         */
    075        public String getScanCommand();
    076
    077}