001/*
002 * Copyright (c) 2004-2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: welker $'
006 * '$Date: 2010-05-06 05:21:26 +0000 (Thu, 06 May 2010) $' 
007 * '$Revision: 24234 $'
008 * 
009 * Permission is hereby granted, without written agreement and without
010 * license or royalty fees, to use, copy, modify, and distribute this
011 * software and its documentation for any purpose, provided that the above
012 * copyright notice and the following two paragraphs appear in all copies
013 * of this software.
014 *
015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
019 * SUCH DAMAGE.
020 *
021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
026 * ENHANCEMENTS, OR MODIFICATIONS.
027 *
028 */
029
030package org.kepler.io;
031
032/**
033 * File information structure. Used by DirectoryListing. For each file, this
034 * object stores: - name (just its name, not the path) - size (in bytes) - date
035 * (in UTC seconds)
036 * 
037 * Note: we use this instead of File, because we need listings of remote files.
038 */
039public class FileInfo {
040
041        private String name; // file name (the directory is stored somewhere else)
042        private long size; // in bytes
043        private long date; // in UTC seconds (last modification time)
044
045        public FileInfo(String name) {
046                this(name, -1L, -1L);
047        }
048
049        public FileInfo(String name, long size, long date) {
050                this.name = name;
051                this.size = size;
052                this.date = date;
053        }
054
055        public void setSize(long size) {
056                this.size = size;
057        }
058
059        public void setDate(long date) {
060                this.date = date;
061        }
062
063        public String getName() {
064                return name;
065        }
066
067        public long getSize() {
068                return size;
069        }
070
071        public long getDate() {
072                return date;
073        }
074
075        public String toString() {
076                return "{name=" + name + ", date=" + date + ", size=" + size + "}";
077        }
078
079}