package bluej.stride.framedjava.ast;

import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.List;

import bluej.parser.AssistContent;
import bluej.parser.AssistContent.Access;

public enum AccessPermission{
   PRIVATE("private"), PROTECTED("protected"), PUBLIC("public"), EMPTY("");
   
   
    
   
   private String displayName;
    
   
   private AccessPermission(String displayName)
   {        
      this.displayName = displayName;     
      }
    
   
   @Override
   
   public String toString()
   {        
      return displayName;     
      }
    
   
   public String getJavaCode()
   {        
      
      
      return displayName;     
      }

   
   public Access asAccess()
   {
      switch (this)
       {            
         case PRIVATE:
               
         return Access.PRIVATE;
           
         case PROTECTED:
               
         return Access.PROTECTED;
           
         case PUBLIC:
               
         return Access.PUBLIC;
           
         default:
               
         return null;         
         }     
      }
    
   
   public static List all()
   {
      return Arrays.asList(PRIVATE, PROTECTED, PUBLIC);     
      }

   
   public static AccessPermission fromString(String s)
   {        
      for (AccessPermission a : all()) {
         if (a.toString().equals(s)) {                
            return a;             
            }         
         }
       
      return EMPTY;     
      }

    
   
   public static boolean isValid(AccessPermission ap)
   {        
      return ap == PRIVATE || ap == PROTECTED || ap == PUBLIC;     
      }

   
   public static AccessPermission fromAccess(AssistContent.Access access)
   {
      switch (access)
       {            
         case PRIVATE:
               
         return PRIVATE;
           
         case PROTECTED:
           
         case PACKAGE:
               
         return PROTECTED;
           
         case PUBLIC:
               
         return PUBLIC;
           
         default:
               
         return EMPTY;         
         }     
      } 
   }

.   AccessPermission
.   toString
.   getJavaCode
.   asAccess
.   all
.   fromString
.   isValid
.   fromAccess




117 neLoCode + 0 LoComm