/* * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.nio.file.attribute; import static java.nio.file.attribute.PosixFilePermission.*; import java.util.*; /** * This class consists exclusively of static methods that operate on sets of * {@link PosixFilePermission} objects. * * @since 1.7 */ public final class PosixFilePermissions { private PosixFilePermissions() { } // Write string representation of permission bits to {@code sb}. private static void writeBits(StringBuilder sb, boolean r, boolean w, boolean x) { if (r) { sb.append('r'); } else { sb.append('-'); } if (w) { sb.append('w'); } else { sb.append('-'); } if (x) { sb.append('x'); } else { sb.append('-'); } } /** * Returns the {@code String} representation of a set of permissions. It * is guaranteed that the returned {@code String} can be parsed by the * {@link #fromString} method. * *
If the set contains {@code null} or elements that are not of type
* {@code PosixFilePermission} then these elements are ignored.
*
* @param perms
* the set of permissions
*
* @return the string representation of the permission set
*/
public static String toString(Set The {@code perms} parameter is a {@code String} representing the
* permissions. It has 9 characters that are interpreted as three sets of
* three. The first set refers to the owner's permissions; the next to the
* group permissions and the last to others. Within each set, the first
* character is {@code 'r'} to indicate permission to read, the second
* character is {@code 'w'} to indicate permission to write, and the third
* character is {@code 'x'} for execute permission. Where a permission is
* not set then the corresponding character is set to {@code '-'}.
*
* Usage Example:
* Suppose we require the set of permissions that indicate the owner has read,
* write, and execute permissions, the group has read and execute permissions
* and others have none.
*
* Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
*
*
* @param perms
* string representing a set of permissions
*
* @return the resulting set of permissions
*
* @throws IllegalArgumentException
* if the string cannot be converted to a set of permissions
*
* @see #toString(Set)
*/
public static Set