/******************************************************************************* * Copyright (c) 2015 Wind River Systems, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Markus Schorn - initial API and implementation *******************************************************************************/ package org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime; import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IWindowsFileAttributes; public interface IFSTreeNodeBase { enum Type { FILE_SYSTEM, ROOT, DIRECTORY_OR_FILE } /** * Returns the name of the tree node. */ String getName(); /** * Returns the type of the tree node. */ Type getType(); /** * Returns the location of the file on the remote system */ String getLocation(); /** * Returns a label for the type of the file or directory */ String getFileTypeLabel(); /** * Returns information about the user account under which the remote agent accesses * the file system */ IUserAccount getUserAccount(); /** * Creates a working copy for the purpose of changing permissions */ IFSTreeNodeWorkingCopy createWorkingCopy(); /** * Returns whether this node represents the entire file system */ boolean isFileSystem(); /** * Returns whether this node represents a root directory like a disk */ boolean isRootDirectory(); /** * Returns whether this node represents a directory. Root directories are * also considered to be directories. */ boolean isDirectory(); /** * Returns whether this node represents a file. */ boolean isFile(); /** * Returns the time of the last access */ long getAccessTime(); /** * Returns the time of the last modification */ long getModificationTime(); /** * Returns the size of the file or <code>0</code>, if not applicable. */ long getSize(); /** * Returns whether the file is marked as read only (Windows feature) */ boolean isReadOnly(); /** * Checks whether the agent has read permissions for the file */ boolean isReadable(); /** * Checks whether the agent has write permissions for the file */ boolean isWritable(); /** * Checks whether the agent has execute permissions for the file */ boolean isExecutable(); /** * Checks whether the file is marked as a system file (Windows feature) */ boolean isSystemFile(); /** * Checks whether the file is marked as a hidden file (Windows feature) */ boolean isHidden(); /** * Checks whether the agent is the owner of the file */ boolean isAgentOwner(); /** * Checks whether the node represents a windows file entity */ boolean isWindowsNode(); /** * Checks for the given permissions. * @param bit a combination of IFileSystem.S_ values */ boolean getPermission(int bit); /** * Checks for the given windows attribute. * @param attribute a combination of attributes defined at {@link IWindowsFileAttributes} */ boolean getWin32Attr(int attribute); /** * Returns the user id for this file */ int getUID(); /** * Returns the group id for this file */ int getGID(); }