1 27 package ch.ethz.prose; 28 29 import java.io.Serializable ; 31 import java.security.Permission ; 32 33 57 public final class ProsePermission extends Permission implements Serializable { 58 private final static String [] NAMES = {"registerListener", "startupExtensionSystem"}; 59 private final static String WILDCARD = "*"; 60 61 private int nameIndex = -1; 62 63 68 public ProsePermission(String name) { 69 super(name); 70 71 if (name == null) { 72 throw new NullPointerException ("name can't be null"); 73 } 74 75 for (int i=0; i<NAMES.length; i++) { 76 if (name.equals(NAMES[i])) { 77 nameIndex = i; 78 break; 79 } 80 } 81 82 if (nameIndex == -1) { 83 String names = NAMES[0]; 84 for (int i=1; i<NAMES.length; i++) { 85 names += ", " + NAMES[i]; 86 } 87 88 throw new IllegalArgumentException ("Invalid name \""+name+"\". Valid choices are: " + names); 89 } 90 } 91 92 100 public ProsePermission(String name, String actions) { 101 this(name); 102 } 103 104 110 public boolean implies(Permission p) { 111 if (p instanceof ProsePermission) { 112 if (getName().equals(WILDCARD)) { 113 return true; 114 } 115 116 return nameIndex == ((ProsePermission) p).nameIndex; 117 } 118 119 return false; 120 } 121 122 125 public String getActions() { 126 return ""; 127 } 128 129 public boolean equals(Object obj) { 130 if (obj instanceof ProsePermission) { 131 return nameIndex == ((ProsePermission) obj).nameIndex; 132 } else { 133 return false; 134 } 135 } 136 137 public int hashCode() { 138 return getName().hashCode(); 139 } 140 } 141 142 143 | Popular Tags |