private void processOptions(LocalTask task) throws IOException {
   URLOptions urlOptions = new URLOptions();
   String[] parts;
   cache_unshorten = null;
   cache_titles = null;
   switch (task.getStatus()) {
     case ADDED:
     case READY:
       if (task.hasOption(Options.OPTION_UNSHORTEN)) {
         task.setStatus(Status.PROCESSING_UNSHORTEN).persist();
         String links = Utils.filterLinks(task.getTitle()).trim();
         parts = urlOptions.unshorten(links.split(" "));
         cache_unshorten = parts.clone();
         task.setTitle(Utils.replace(task.getTitle(), parts))
             .removeOption(Options.OPTION_UNSHORTEN);
       }
       if (task.hasOption(Options.OPTION_GETTITLES)) {
         task.setStatus(Status.PROCESSING_TITLE).persist();
         String links = Utils.filterLinks(task.getTitle()).trim();
         parts = urlOptions.getTitles(links.split(" "));
         cache_titles = parts.clone();
         task.setTitle(Utils.appendInBrackets(task.getTitle(), parts))
             .removeOption(Options.OPTION_GETTITLES);
       }
       task.setStatus(Status.READY);
       break;
     case PROCESSING_UNSHORTEN:
       parts = Utils.filterLinks(task.getTitle()).split(" ");
       parts = urlOptions.unshorten(parts);
       cache_unshorten = parts.clone();
       task.setTitle(Utils.replace(task.getTitle(), parts)).removeOption(Options.OPTION_UNSHORTEN);
       if (!task.hasOption(Options.OPTION_GETTITLES)) {
         task.setStatus(Status.READY);
         break;
       }
     case PROCESSING_TITLE:
       parts = Utils.filterLinks(task.getTitle()).split(" ");
       parts = urlOptions.getTitles(parts);
       cache_titles = parts.clone();
       task.setTitle(Utils.appendInBrackets(task.getTitle(), parts))
           .removeOption(Options.OPTION_GETTITLES)
           .setStatus(Status.READY);
       break;
   }
 }