public String getSymbol() {
        final StringBuilder symbolic = new StringBuilder();
        symbolic.append(setuid ? user.implies(Action.execute) ?
                StringUtils.substring(user.symbolic, 0, 2) + "s" : StringUtils.substring(user.symbolic, 0, 2) + "S" :
                user.symbolic);
        symbolic.append(setgid ? group.implies(Action.execute) ?
                StringUtils.substring(group.symbolic, 0, 2) + "s" : StringUtils.substring(group.symbolic, 0, 2) + "S" :
                group.symbolic);
        symbolic.append(sticky ? other.implies(Action.execute) ?
                StringUtils.substring(other.symbolic, 0, 2) + "t" : StringUtils.substring(other.symbolic, 0, 2) + "T" :
                other.symbolic);
        return symbolic.toString();
    }
@Test
    public void testSymbol() {
        Permission p1 = new Permission(777);
        assertEquals("rwxrwxrwx", p1.getSymbol());
        Permission p2 = new Permission(666);
        assertEquals("rw-rw-rw-", p2.getSymbol());
    }