# FileSystemRights.java

    package com.goldencode.p2j.concurrent;

    import com.goldencode.p2j.security.*;

    /**
     * Implements the <code>FileSystemResource</code> rights objects.
     */
    public class FileSystemRights
    extends BitFlagsRights
    {
       /**
        * Default constructor which creates an instance that always evaluates to no access.
        */
       public FileSystemRights()
       {
       }

       /**
        * Protected constructor.
        *
        * @param    perms
        *           Bitfield of perms (CDRWN).
        */
       public FileSystemRights(BitSet perms)
       {
          super(perms);
       }

       /**
        * Reports this class' rights name.
        *
        * @return   The name of this rights class.
        */
       public String getRightsName()
       {
          return "fileSystemRights";
       }

       /**
        * Converts this object into a string.
        *
        * @return   The string representation of this object.
        */
       public String toString()
       {
          StringBuilder sb = new StringBuilder();

          sb.append("{");

          if (perms.isSet(BIT_CREATE_ACCESS))
          {
             sb.append("C");
          }
          else
          {
             sb.append(".");
          }

          if (perms.isSet(BIT_DELETE_ACCESS))
          {
             sb.append("D");
          }
          else
          {
             sb.append(".");
          }

          if (perms.isSet(BIT_READ_ACCESS))
          {
             sb.append("R");
          }
          else
          {
             sb.append(".");
          }

          if (perms.isSet(BIT_WRITE_ACCESS))
          {
             sb.append("W");
          }
          else
          {
             sb.append(".");
          }

          if (perms.isSet(FileSystemResource.BIT_EXECUTE_ACCESS))
          {
             sb.append("X");
          }
          else
          {
             sb.append(".");
          }

          // render the reserved bits
          sb.append("..");

          if (perms.isSet(BIT_DENIED_ACCESS))
          {
             sb.append("N");
          }
          else
          {
             sb.append(".");
          }

          sb.append("}");

          return new String(sb);
       }
    }