/** * Returns the string representation of this {@code PermissionInfo}. The * string is created by calling the {@code getEncoded} method on this * {@code PermissionInfo}. * * @return The string representation of this {@code PermissionInfo}. */ @Override public String toString() { return getEncoded(); }
if (name != null) { output.append(" \""); escapeString(name, output); if (actions != null) { output.append("\" \""); escapeString(actions, output);
parsedName = unescapeString(encoded, begin, pos); pos++; parsedActions = unescapeString(encoded, begin, pos); pos++;
private PermissionInfo[] getFileRelativeInfos(PermissionInfo[] permissionInfos, Bundle bundle) { if (permissionInfos == null || !(bundle instanceof AbstractBundle)) return permissionInfos; PermissionInfo[] results = new PermissionInfo[permissionInfos.length]; for (int i = 0; i < permissionInfos.length; i++) { results[i] = permissionInfos[i]; if ("java.io.FilePermission".equals(permissionInfos[i].getType())) { //$NON-NLS-1$ if (!"<<ALL FILES>>".equals(permissionInfos[i].getName())) { //$NON-NLS-1$ File file = new File(permissionInfos[i].getName()); if (!file.isAbsolute()) { // relative name File target = ((AbstractBundle) bundle).getBundleData().getDataFile(permissionInfos[i].getName()); if (target != null) results[i] = new PermissionInfo(permissionInfos[i].getType(), target.getPath(), permissionInfos[i].getActions()); } } } } return results; }
static Permission createPermission(BundleContext ctx, PermissionInfo pi) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException { String type = pi.getType(); Class<?> cls = loadClass(ctx, type, Permission.class); Constructor<?> constr = cls.getConstructor(new Class<?>[]{String.class, String.class}); String name = pi.getName(); String actions = pi.getActions(); Permission perm = (Permission) constr.newInstance(name, actions); return perm; }
private static PermissionInfo[] getPermissionInfos(String[] encodedInfos) { if (encodedInfos == null) return null; PermissionInfo[] results = new PermissionInfo[encodedInfos.length]; for (int i = 0; i < results.length; i++) results[i] = new PermissionInfo(encodedInfos[i]); return results; }
public PermissionInfoCollection(PermissionInfo[] permInfos) { this.permInfos = permInfos; boolean tempAllPermissions = false; for (int i = 0; i < permInfos.length && !tempAllPermissions; i++) if (permInfos[i].getType().equals(AllPermission.class.getName())) tempAllPermissions = true; this.hasAllPermission = tempAllPermissions; setReadOnly(); // collections are managed with ConditionalPermissionAdmin }
static int getHashCode(String name, ConditionInfo[] conds, PermissionInfo[] perms, String decision) { int h = 31 * 17 + decision.hashCode(); for (int i = 0; i < conds.length; i++) h = 31 * h + conds[i].hashCode(); for (int i = 0; i < perms.length; i++) h = 31 * h + perms[i].hashCode(); if (name != null) h = 31 * h + name.hashCode(); return h; }
private PermissionInfo[] getFileRelativeInfos(PermissionInfo[] permissionInfos, Bundle bundle) { if (permissionInfos == null) return permissionInfos; PermissionInfo[] results = new PermissionInfo[permissionInfos.length]; for (int i = 0; i < permissionInfos.length; i++) { results[i] = permissionInfos[i]; if ("java.io.FilePermission".equals(permissionInfos[i].getType())) { //$NON-NLS-1$ if (!"<<ALL FILES>>".equals(permissionInfos[i].getName())) { //$NON-NLS-1$ File file = new File(permissionInfos[i].getName()); if (!file.isAbsolute()) { // relative name try { File target = bundle.getDataFile(permissionInfos[i].getName()); if (target != null) results[i] = new PermissionInfo(permissionInfos[i].getType(), target.getPath(), permissionInfos[i].getActions()); } catch (IllegalStateException e) { // can happen if the bundle has been uninstalled; // we just keep the original permission in this case. } } } } } return results; }
if (permInfos[i].getType().equals(permClassName)) { String args[] = new String[numArgs]; if (numArgs > 0) args[0] = permInfos[i].getName(); if (numArgs > 1) args[1] = permInfos[i].getActions(); if (permInfos[i].getType().equals("java.io.FilePermission")) { //$NON-NLS-1$
private static PermissionInfo[] getPermissionInfos(String[] encodedInfos) { if (encodedInfos == null) return null; PermissionInfo[] results = new PermissionInfo[encodedInfos.length]; for (int i = 0; i < results.length; i++) results[i] = new PermissionInfo(encodedInfos[i]); return results; }
public PermissionInfoCollection(PermissionInfo[] permInfos) { this.permInfos = permInfos; boolean tempAllPermissions = false; for (int i = 0; i < permInfos.length && !tempAllPermissions; i++) if (permInfos[i].getType().equals(AllPermission.class.getName())) tempAllPermissions = true; this.hasAllPermission = tempAllPermissions; setReadOnly(); // collections are managed with ConditionalPermissionAdmin }
static int getHashCode(String name, ConditionInfo[] conds, PermissionInfo[] perms, String decision) { int h = 31 * 17 + decision.hashCode(); for (int i = 0; i < conds.length; i++) h = 31 * h + conds[i].hashCode(); for (int i = 0; i < perms.length; i++) h = 31 * h + perms[i].hashCode(); if (name != null) h = 31 * h + name.hashCode(); return h; }
private PermissionInfo[] getFileRelativeInfos(PermissionInfo[] permissionInfos, Bundle bundle) { if (permissionInfos == null) return permissionInfos; PermissionInfo[] results = new PermissionInfo[permissionInfos.length]; for (int i = 0; i < permissionInfos.length; i++) { results[i] = permissionInfos[i]; if ("java.io.FilePermission".equals(permissionInfos[i].getType())) { //$NON-NLS-1$ if (!"<<ALL FILES>>".equals(permissionInfos[i].getName())) { //$NON-NLS-1$ File file = new File(permissionInfos[i].getName()); if (!file.isAbsolute()) { // relative name try { File target = bundle.getDataFile(permissionInfos[i].getName()); if (target != null) results[i] = new PermissionInfo(permissionInfos[i].getType(), target.getPath(), permissionInfos[i].getActions()); } catch (IllegalStateException e) { // can happen if the bundle has been uninstalled; // we just keep the original permission in this case. } } } } } return results; }
if (permInfos[i].getType().equals(permClassName)) { String args[] = new String[numArgs]; if (numArgs > 0) args[0] = permInfos[i].getName(); if (numArgs > 1) args[1] = permInfos[i].getActions(); if (permInfos[i].getType().equals("java.io.FilePermission")) { //$NON-NLS-1$
private static String[] getEncodedPermissionInfos(PermissionInfo[] permissions) { if (permissions == null) return null; String[] encoded = new String[permissions.length]; for (int i = 0; i < encoded.length; i++) encoded[i] = permissions[i].getEncoded(); return encoded; }
private static PermissionInfo[] getPermissionInfos(String[] encodedInfos) { if (encodedInfos == null) return null; PermissionInfo[] results = new PermissionInfo[encodedInfos.length]; for (int i = 0; i < results.length; i++) results[i] = new PermissionInfo(encodedInfos[i]); return results; }
if (name != null) { output.append(" \""); escapeString(name, output); if (actions != null) { output.append("\" \""); escapeString(actions, output);
parsedName = unescapeString(encoded, begin, pos); pos++; parsedActions = unescapeString(encoded, begin, pos); pos++;
public PermissionInfoCollection(PermissionInfo[] permInfos) { this.permInfos = permInfos; boolean tempAllPermissions = false; for (int i = 0; i < permInfos.length && !tempAllPermissions; i++) if (permInfos[i].getType().equals(AllPermission.class.getName())) tempAllPermissions = true; this.hasAllPermission = tempAllPermissions; setReadOnly(); // collections are managed with ConditionalPermissionAdmin }