/* * @(#)FileInfo.java * * Copyright (c) 2005-2010 Werner Randelshofer, Immensee, Switzerland. * All rights reserved. * * You may not use, copy or modify this file, except in compliance with the * license agreement you entered into with Werner Randelshofer. * For details see accompanying license terms. */ package ch.randelshofer.quaqua.filechooser; import java.io.*; import javax.swing.*; /** * Provides information about a File object. FileInfo uses a worker thread for * validating the information that it provides. The quality of the information * returned increases over time. * * @author Werner Randelshofer * @version $Id: FileInfo.java 363 2010-11-21 17:41:04Z wrandelshofer $ */ public interface FileInfo { /** * Returns the unresolved file object. */ public File getFile(); /** * Returns the resolved file object. */ public File getResolvedFile(); /** * Lazyily returns the resolved file object. * Returns null, if the file object has not been resolved yet. */ public File lazyGetResolvedFile(); /** * Returns true, if the file object is traversable. */ public boolean isTraversable(); /** * Returns true, if the file object is hidden. */ public boolean isHidden(); /** * Returns true, if the file object is acceptable, i.e. selectable in * the JFileChooser. */ public boolean isAcceptable(); /** * Returns the (color) label of the file. * Returns -1 if the label has not (yet) been determined. */ public int getFileLabel(); /** * Returns the user name of the file. */ public String getUserName(); /** * Returns the icon of the file. * Returns a proxy icon if the real icon has not yet been fetched from the * file system. */ public Icon getIcon(); /** * Returns the length of the file. * Returns -1 if the length has not (yet) been determined. */ public long getFileLength(); /** * Returns the kind of the file. * Returns null if the kind has not (yet) been determined. */ public String getFileKind(); /** * Returns true if a worker thread is validating the information provided * by this file info object. */ public boolean isValidating(); }