示例#1
0
 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;
 }