diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/AbstractFileService.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/AbstractFileService.java index bf9a9341e63..43bf48c39a2 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/AbstractFileService.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/AbstractFileService.java @@ -76,6 +76,10 @@ public abstract class AbstractFileService extends AbstractService implements IFi protected abstract IHostFile[] internalFetch(String parentPath, String fileFilter, int fileType, IProgressMonitor monitor) throws SystemMessageException; + /** + * {@inheritDoc} + * @since 3.0 + */ public void getFileMultiple(String remoteParents[], String names[], List hostFiles, IProgressMonitor monitor) throws SystemMessageException { @@ -89,12 +93,20 @@ public abstract class AbstractFileService extends AbstractService implements IFi } } + /** + * {@inheritDoc} + * @since 3.0 using int fileTYpe + */ public IHostFile[] list(String remoteParent, String fileFilter, int fileType, IProgressMonitor monitor) throws SystemMessageException { return internalFetch(remoteParent, fileFilter, fileType, monitor); } + /** + * {@inheritDoc} + * @since 3.0 + */ public void listMultiple(String[] remoteParents, String[] fileFilters, int fileTypes[], List hostFiles, IProgressMonitor monitor) throws SystemMessageException { @@ -114,6 +126,10 @@ public abstract class AbstractFileService extends AbstractService implements IFi } + /** + * {@inheritDoc} + * @since 3.0 + */ public void listMultiple(String[] remoteParents, String[] fileFilters, int fileType, List hostFiles, IProgressMonitor monitor) throws SystemMessageException { @@ -163,6 +179,10 @@ public abstract class AbstractFileService extends AbstractService implements IFi } + /** + * {@inheritDoc} + * @since 3.0 returning void + */ public void deleteBatch(String[] remoteParents, String[] fileNames, IProgressMonitor monitor) throws SystemMessageException { if (monitor != null) @@ -176,7 +196,8 @@ public abstract class AbstractFileService extends AbstractService implements IFi } /** - * Default implementation - just iterate through each file + * {@inheritDoc} Default implementation - just iterate through each file + * @since 3.0 returning void */ public void downloadMultiple(String[] remoteParents, String[] remoteFiles, File[] localFiles, boolean[] isBinaries, String[] hostEncodings, @@ -198,7 +219,8 @@ public abstract class AbstractFileService extends AbstractService implements IFi } /** - * Default implementation - just iterate through each file + * {@inheritDoc} Default implementation - just iterate through each file + * @since 3.0 */ public void uploadMultiple(File[] localFiles, String[] remoteParents, String[] remoteFiles, boolean[] isBinaries, String[] srcEncodings, @@ -253,10 +275,13 @@ public abstract class AbstractFileService extends AbstractService implements IFi } /** - * Gets the output stream to write/append to a remote file. - * The default implementation returns null. - * Clients can override to return an output stream to the file. - * @see org.eclipse.rse.services.files.IFileService#getOutputStream(String, String, int, IProgressMonitor) + * Gets the output stream to write/append to a remote file. The default + * implementation returns null. Clients can override to return + * an output stream to the file. + * + * @see org.eclipse.rse.services.files.IFileService#getOutputStream(String, + * String, int, IProgressMonitor) + * @since 3.0 using int options */ public OutputStream getOutputStream(String remoteParent, String remoteFile, int options, IProgressMonitor monitor) throws SystemMessageException { if ((options & IFileService.APPEND) == 0) { @@ -268,8 +293,10 @@ public abstract class AbstractFileService extends AbstractService implements IFi } /** - * The default implementation returns false. Clients should override this method if they make use - * of IFileServiceCodePageConverter to do conversion during download and upload. + * The default implementation returns false. Clients should override this + * method if they make use of IFileServiceCodePageConverter to do conversion + * during download and upload. + * @since 3.0 */ public boolean supportsEncodingConversion(){ return false; diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/CodePageConverterManager.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/CodePageConverterManager.java index 918a64c0a53..140f9b2aaa8 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/CodePageConverterManager.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/CodePageConverterManager.java @@ -8,7 +8,7 @@ * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer * component that contains this file: David McKnight. - * + * * Contributors: * {Name} (company) - description of contribution. * David McKnight (IBM) - [209704] [api] Ability to override default encoding conversion needed. @@ -19,19 +19,22 @@ package org.eclipse.rse.services.files; import java.util.Vector; /** - * Utility class for getting a file service code page converter for a given server encoding and file service + * Utility class for getting a file service code page converter for a given + * server encoding and file service + * + * @since 3.0 */ public class CodePageConverterManager { - + private static IFileServiceCodePageConverter _defaultCodePageConverter; protected static Vector _codePageConverters = new Vector(); - + public static void registerCodePageConverter(IFileServiceCodePageConverter converter) { _codePageConverters.add(converter); } - + public static IFileServiceCodePageConverter getDefaultCodePageConverter() { if (_defaultCodePageConverter == null){ @@ -39,11 +42,11 @@ public class CodePageConverterManager { } return _defaultCodePageConverter; } - + /** - * Retrieves the first codepage converter provided via the codePageConverter extension point for the specified + * Retrieves the first codepage converter provided via the codePageConverter extension point for the specified * encoding - * @param serverEncoding The server encoding for which to retrieve a code page converter + * @param serverEncoding The server encoding for which to retrieve a code page converter * @return A code page converter for the specified encoding, or null if no converter was found for that encoding. */ public static IFileServiceCodePageConverter getCodePageConverter(String serverEncoding, IFileService fileService) { @@ -51,11 +54,11 @@ public class CodePageConverterManager { IFileServiceCodePageConverter matchingCodePageConverter = null; if (_codePageConverters != null) { - - //scan through the available converters and return the first valid one for the specified encoding for this + + //scan through the available converters and return the first valid one for the specified encoding for this // subsystem implementation for (int i=0; i<_codePageConverters.size(); i++) { - IFileServiceCodePageConverter codePageConverter = (IFileServiceCodePageConverter)_codePageConverters.elementAt(i); + IFileServiceCodePageConverter codePageConverter = (IFileServiceCodePageConverter)_codePageConverters.elementAt(i); if (codePageConverter.isServerEncodingSupported(serverEncoding, fileService)) { if (matchingCodePageConverter != null){ @@ -71,14 +74,14 @@ public class CodePageConverterManager { } } } - + if (matchingCodePageConverter == null) { matchingCodePageConverter = getDefaultCodePageConverter(); } - + return matchingCodePageConverter; } - + } diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/DefaultFileServiceCodePageConverter.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/DefaultFileServiceCodePageConverter.java index bbb029e2f16..a9b0587204a 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/DefaultFileServiceCodePageConverter.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/DefaultFileServiceCodePageConverter.java @@ -1,13 +1,13 @@ /******************************************************************************** * Copyright (c) 2007, 2008 IBM Corporation. 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 + * of the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html - * + * * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer * component that contains this file: David McKnight. - * + * * Contributors: * David McKnight (IBM) -[209704] [api][dstore] Ability to override default encoding conversion needed. * David McKnight (IBM) -[220379] [api] Provide a means for contributing custom BIDI encodings @@ -19,9 +19,12 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +/** + * @since 3.0 + */ public class DefaultFileServiceCodePageConverter implements IFileServiceCodePageConverter { - + public byte[] convertClientStringToRemoteBytes(String remotePath, String clientString, String remoteEncoding, IFileService fs) { try @@ -29,14 +32,14 @@ public class DefaultFileServiceCodePageConverter implements return clientString.getBytes(remoteEncoding); } catch (Exception e) - { + { } return clientString.getBytes(); } public void convertFileFromRemoteEncoding(String remotePath, File file, String remoteEncoding, String localEncoding, IFileService fs) { - + // read in the file try { @@ -47,16 +50,16 @@ public class DefaultFileServiceCodePageConverter implements int bytesRead = bufInputStream.read(buffer, 0, fileLength); bufInputStream.close(); inputStream.close(); - + byte[] localBuffer = new String(buffer, 0, bytesRead, remoteEncoding).getBytes(localEncoding); - - FileOutputStream outStream = new FileOutputStream(file); + + FileOutputStream outStream = new FileOutputStream(file); outStream.write(localBuffer, 0, localBuffer.length); outStream.close(); } catch (Exception e) { - + } } @@ -64,9 +67,9 @@ public class DefaultFileServiceCodePageConverter implements IFileService fs) { return true; } - + /** - * to make another converter take precedence over this, supply a + * to make another converter take precedence over this, supply a * code page converter returning a lower number (i.e. higher priority) */ public int getPriority(String remoteEString, IFileService fs){ diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/HostFilePermissions.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/HostFilePermissions.java index e468cef92e9..f01dcf35ffa 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/HostFilePermissions.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/HostFilePermissions.java @@ -1,37 +1,37 @@ /******************************************************************************** * Copyright (c) 2008 IBM Corporation. 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 + * of the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html - * + * * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer * component that contains this file: David McKnight. - * + * * Contributors: * David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files ********************************************************************************/ package org.eclipse.rse.services.files; /** - * Implementation of IHostFilePermissions. - * + * Default implementation of "Universal" UNIX kind of IHostFilePermissions. + * @since 3.0 */ public class HostFilePermissions implements IHostFilePermissions, Cloneable { - + private int _permissions = 0; private String _user; private String _group; - - + + /** - * Constructor without any intial values. Users of this - * need to set fields as appropriate + * Constructor without any initial values. Users of this need to set fields + * as appropriate */ public HostFilePermissions(){ } - + /** * Constructor that takes the initial permissions in rwxrwxrwx form * @param alphaPermissions the initial permissions in alpha form @@ -42,7 +42,7 @@ public class HostFilePermissions implements _user = user; _group = group; } - + /** * Constructor that takes the initial permissions as a bitmask * @param initialPermissions the initial permissions bitmask @@ -52,7 +52,7 @@ public class HostFilePermissions implements _user = user; _group = group; } - + /** * Convert permissions in rwxrwxrwx form to octal * @param userPermissions @@ -66,11 +66,11 @@ public class HostFilePermissions implements StringBuffer buf = new StringBuffer(); // permissions char[] chars = alphaPermissions.toCharArray(); - + int offset = -1; for (int i = 0; i < 3; i++){ int value = 0; - + if (chars[++offset] == 'r'){ value = 4; } @@ -79,36 +79,36 @@ public class HostFilePermissions implements } if (chars[++offset] == 'x'){ value += 1; - } + } buf.append(value); } - - return buf.toString(); + + return buf.toString(); } - + public void setPermission(int permission, boolean value) { if (value) set(permission); else clear(permission); } - + public boolean getPermission(int permission) { return isSet(permission); } - + public int getPermissionBits() { return _permissions; } - + public void setPermissionBits(int bits) { _permissions = bits; } - + public String toString(){ return "" + _permissions; //$NON-NLS-1$ } - + private boolean isSet(long mask) { return (_permissions & mask) != 0; } @@ -116,17 +116,17 @@ public class HostFilePermissions implements private void set(int mask) { _permissions |= mask; } - + private void clear(int mask) { _permissions &= ~mask; } - + /** * return permissions in rwxrwxrwx form */ public String toAlphaString(){ StringBuffer buf = new StringBuffer(); - + buf.append(getPermission(IHostFilePermissions.PERM_USER_READ) ? 'r' : '-'); buf.append(getPermission(IHostFilePermissions.PERM_USER_WRITE) ? 'w' : '-'); buf.append(getPermission(IHostFilePermissions.PERM_USER_EXECUTE) ? 'x' : '-'); @@ -148,7 +148,7 @@ public class HostFilePermissions implements } public void setGroupOwner(String group) { - _group = group; + _group = group; } public void setUserOwner(String user) { @@ -158,6 +158,6 @@ public class HostFilePermissions implements public Object clone() throws CloneNotSupportedException { return super.clone(); } - - + + } diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IFilePermissionsService.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IFilePermissionsService.java index 8159fe10fba..16ed0846c1c 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IFilePermissionsService.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IFilePermissionsService.java @@ -1,13 +1,13 @@ /******************************************************************************** * Copyright (c) 2008 IBM Corporation. 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 + * of the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html - * + * * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer * component that contains this file: David McKnight. - * + * * Contributors: * David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files ********************************************************************************/ @@ -18,7 +18,12 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.rse.services.clientserver.messages.SystemMessageException; /** - * Service used to get and set the permissions of a file. + * Service used to get and set the permissions of a file. The + * {@link #getCapabilities(IHostFile)} method must be implemented to tell + * clients what kinds of permission services are actually available on a + * concrete implementation. + * + * @since 3.0 */ public interface IFilePermissionsService { @@ -28,41 +33,41 @@ public interface IFilePermissionsService { public static int FS_CAN_SET_OWNER = 1 << 3; public static int FS_CAN_SET_GROUP = 1 << 4; public static int FS_CAN_SET_PERMISSIONS = 1 << 5; - + public static final int FS_CAN_GET_ALL = FS_CAN_GET_OWNER | FS_CAN_GET_GROUP | FS_CAN_GET_PERMISSIONS; public static final int FS_CAN_SET_ALL = FS_CAN_SET_OWNER | FS_CAN_SET_GROUP | FS_CAN_SET_PERMISSIONS; - + /** * Gets the permissions for a file including the user and group owner - * + * * @param file the remote file * @param monitor the monitor for this potentially long running operation * @return the host file permissions - * @throws SystemMessageException if an error occurs. + * @throws SystemMessageException if an error occurs. * Typically this would be one of those in the RemoteFileException family. */ public IHostFilePermissions getFilePermissions(IHostFile file, IProgressMonitor monitor) throws SystemMessageException; - + /** * Sets the permissions for a file including the user and group owner as specified in the permissions - * + * * @param file the remote file * @param permissions the new permissions for this file * @param monitor the monitor for this potentially long running operation - * @throws SystemMessageException if an error occurs. + * @throws SystemMessageException if an error occurs. * Typically this would be one of those in the RemoteFileException family. */ public void setFilePermissions(IHostFile file, IHostFilePermissions permissions, IProgressMonitor monitor) throws SystemMessageException; - + /** * Returns the capabilities of this file permissions service for the corresponding file. If * null is specified, this returns the general capabilities of this service. - * + * * @param file the remote file * @return the capabilities of this service against this file */ public int getCapabilities(IHostFile file); - + } diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissions.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissions.java index 31de1fee3bf..7c3ffb751df 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissions.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissions.java @@ -1,80 +1,87 @@ /******************************************************************************** * Copyright (c) 2008 IBM Corporation. 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 + * of the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html - * + * * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer * component that contains this file: David McKnight. - * + * * Contributors: * David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files ********************************************************************************/ package org.eclipse.rse.services.files; +/** + * Interface for file permission and ownership support in RSE + * IFileService. An implementation of an IHostFilePermissions + * object is expected to be a data storage for permission and + * ownership information. + * @since 3.0 + */ public interface IHostFilePermissions { - + /** - * Permission constant indicating that + * Permission constant indicating that * the user can read this file */ public static final int PERM_USER_READ = 1 << 8; - + /** - * Permission constant indicating that + * Permission constant indicating that * the user can write to this file */ public static final int PERM_USER_WRITE = 1 << 7; - + /** - * Permission constant indicating that + * Permission constant indicating that * the user can execute this file */ public static final int PERM_USER_EXECUTE = 1 << 6; - + /** - * Permission constant indicating that + * Permission constant indicating that * the group can read this file */ public static final int PERM_GROUP_READ = 1 << 5; - + /** - * Permission constant indicating that + * Permission constant indicating that * the group can write to this file - * + * */ public static final int PERM_GROUP_WRITE = 1 << 4; - + /** - * Permission constant indicating that + * Permission constant indicating that * the group can execute this file - * + * */ public static final int PERM_GROUP_EXECUTE = 1 << 3; - + /** - * Permission constant indicating that + * Permission constant indicating that * other users can read this file - * + * */ public static final int PERM_OTHER_READ = 1 << 2; - + /** - * Permission constant indicating that + * Permission constant indicating that * other users can write to this file - * + * */ public static final int PERM_OTHER_WRITE = 1 << 1; - + /** - * Permission constant indicating that + * Permission constant indicating that * other users can execute to this file - * + * */ public static final int PERM_OTHER_EXECUTE = 1 << 0; - + // support masks public static final int PERM_ANY_READ = PERM_USER_READ | PERM_GROUP_READ | PERM_OTHER_READ; @@ -83,31 +90,31 @@ public interface IHostFilePermissions { /** * Set or reset all the permission bits from the given bitmask. - * + * * @param bitmask the permission(s) bits to modify * @param value whether to turn on off of the permission(s) - * + * * Example: setPermission(PERM_USER_WRITE | PERM_GROUP_WRITE, true); */ public void setPermission(int bitmask, boolean value); - + /** * Test if any of the permission bits from the bitmask are set. - * + * * @param bitmask the permission(s) to check for * @return true if one of the permission bits is set - * + * * Example: getPermission(PERM_USER_WRITE | PERM_GROUP_WRITE) */ public boolean getPermission(int bitmask); /** * Get the set of permission bits. - * + * * @return set of permission bits */ public int getPermissionBits(); - + /** * Set the permission bits * @param bits the set of permission bits @@ -119,35 +126,35 @@ public interface IHostFilePermissions { * return permissions in rwxrwxrwx form */ public String toAlphaString(); - + /** * returns the user owner of the file * @return the user owner */ public String getUserOwner(); - + /** * returns the group owner of the file * @return the group owner */ public String getGroupOwner(); - + /** * Sets the user owner attribute - * @param user the user owner attribute + * @param user the user owner attribute */ public void setUserOwner(String user); - + /** * Sets the group owner attribute * @param group the group owner attribute */ public void setGroupOwner(String group); - + /** - * Creates and returns a copy of this object, as specified + * Creates and returns a copy of this object, as specified * by the {@link Object#clone()} contract. - * + * * Each implementer of the IHostFilePermission API must properly implement * this method and implement the {@link Cloneable} interface. * @return the cloned object diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissionsContainer.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissionsContainer.java index ed0220db9bd..30bb91b9662 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissionsContainer.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IHostFilePermissionsContainer.java @@ -1,22 +1,22 @@ /******************************************************************************** * Copyright (c) 2008 IBM Corporation. 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 + * of the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html - * + * * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer * component that contains this file: David McKnight. - * + * * Contributors: * {Name} (company) - description of contribution. ********************************************************************************/ package org.eclipse.rse.services.files; /** - * A container of permissions. Implementations of IHostFile that support + * A container of permissions. Implementations of IHostFile that support * IHostFilePermissions should implement this too - * + * @since 3.0 */ public interface IHostFilePermissionsContainer { @@ -25,15 +25,15 @@ public interface IHostFilePermissionsContainer { * @return the host file permissions */ public IHostFilePermissions getPermissions(); - + /** * TODO remove this API - here for now because we want to prevent duplicate * query jobs from being triggered from SystemViewRemoteFileAdapter.getPropertyValue() - * + * * Sets the permissions attributes for this file. Right now, using this * to set a dummy "Pending" set of permissions from UI when doing asynchronous queries * from property sheet or table view */ public void setPermissions(IHostFilePermissions permissions); - + } diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/PendingHostFilePermissions.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/PendingHostFilePermissions.java index cac0ffcea0a..12de1d1a002 100644 --- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/PendingHostFilePermissions.java +++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/PendingHostFilePermissions.java @@ -1,23 +1,31 @@ /******************************************************************************** * Copyright (c) 2008 IBM Corporation. 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 + * of the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html - * + * * Initial Contributors: * The following IBM employees contributed to the Remote System Explorer * component that contains this file: David McKnight. - * + * * Contributors: * {Name} (company) - description of contribution. ********************************************************************************/ package org.eclipse.rse.services.files; +/** + * A dummy HostFilePermissions node that can be used for deferred + * query of permissions. Clients who want to read permissions but + * see this pending node need to wait until the real permissions + * get available. + * + * @since 3.0 + */ public class PendingHostFilePermissions extends HostFilePermissions { public PendingHostFilePermissions() { super(0, "Pending", "Pending"); //$NON-NLS-2$ - } - + } + }