/** Determine whether the current user has Windows administrator privileges. */
  public static boolean isWinAdmin() {
    if (!isWinPlatform()) return false;
    //    for (String group : new com.sun.security.auth.module.NTSystem().getGroupIDs()) {
    //      if (group.equals("S-1-5-32-544")) return true; // "S-1-5-32-544" is a well-known
    // security identifier in Windows. If the current user has it then he/she/it is an
    // administrator.
    //    }
    //    return false;

    try {
      Class<?> ntsys = Class.forName("com.sun.security.auth.module.NTSystem");
      if (ntsys != null) {
        Object groupObj =
            SystemUtils.invoke(
                ntsys.newInstance(), ntsys.getDeclaredMethod("getGroupIDs"), (Object[]) null);
        if (groupObj instanceof String[]) {
          for (String group : (String[]) groupObj) {
            if (group.equals("S-1-5-32-544"))
              return true; // "S-1-5-32-544" is a well-known security identifier in Windows. If the
                           // current user has it then he/she/it is an administrator.
          }
        }
      }
    } catch (ReflectiveOperationException e) {
      System.err.println(e);
    }
    return false;
  }
示例#2
0
 /**
  * @return an instanciation of the given content-type class name, or null if class wasn't found
  */
 public static ContentType getContentTypeFromClassName(String contentTypeClassName) {
   if (contentTypeClassName == null)
     contentTypeClassName = getAvailableContentTypes()[DEFAULT_CONTENT_TYPE_INDEX];
   ContentType ct = null;
   try {
     Class clazz = Class.forName(contentTypeClassName);
     ct = (ContentType) clazz.newInstance();
   } catch (ClassNotFoundException cnfex) {
     if (jpicedt.Log.DEBUG) cnfex.printStackTrace();
     JPicEdt.getMDIManager()
         .showMessageDialog(
             "The pluggable content-type you asked for (class "
                 + cnfex.getLocalizedMessage()
                 + ") isn't currently installed, using default instead...",
             Localizer.currentLocalizer().get("msg.LoadingContentTypeClass"),
             JOptionPane.ERROR_MESSAGE);
   } catch (Exception ex) {
     if (jpicedt.Log.DEBUG) ex.printStackTrace();
     JPicEdt.getMDIManager()
         .showMessageDialog(
             ex.getLocalizedMessage(),
             Localizer.currentLocalizer().get("msg.LoadingContentTypeClass"),
             JOptionPane.ERROR_MESSAGE);
   }
   return ct;
 }
示例#3
0
  /**
   * Handle the -biojava option
   *
   * <p>Command line syntax: art -biojava org.biojava.bio.seq.io.EmblLikeFormat foo.embl
   *
   * <p>BioJava formats: EmblLikeFormat, FastaFormat, GAMEFormat, GenbankFormat, PhredFormat
   */
  private void handleBioJava(final String[] args) {
    if (args.length == 3) {
      final String class_name = args[1];
      final String location = args[2];

      final Document location_document = DocumentFactory.makeDocument(location);

      try {
        final Object biojava_object = Class.forName(class_name).newInstance();

        final EntryInformation entry_information = Options.getArtemisEntryInformation();

        final uk.ac.sanger.artemis.io.BioJavaEntry emblEntry;

        if (biojava_object instanceof SequenceFormat) {
          final SequenceFormat sequence_format = (SequenceFormat) biojava_object;

          emblEntry =
              new uk.ac.sanger.artemis.io.BioJavaEntry(
                  entry_information, location_document, sequence_format);

          final Entry new_entry = new Entry(emblEntry);
          final EntryEdit new_entry_edit = makeEntryEdit(new_entry);
          new_entry_edit.setVisible(true);
        } else new MessageDialog(this, "not a SequenceFormat: " + class_name);
      } catch (IllegalAccessException e) {
        new MessageDialog(this, "cannot create class: " + class_name + " - IllegalAccessException");
      } catch (ClassNotFoundException e) {
        new MessageDialog(this, "cannot find class: " + class_name);
      } catch (ClassCastException e) {
        new MessageDialog(this, class_name + " is not a sub-class of " + "SequenceFormat");
      } catch (IOException e) {
        new MessageDialog(this, "I/O error while reading from " + location + ": " + e.getMessage());
      } catch (NoSequenceException e) {
        new MessageDialog(this, location + " contained no sequence");
      } catch (InstantiationException e) {
        new MessageDialog(this, "cannot instantiate " + class_name);
      } catch (OutOfRangeException e) {
        new MessageDialog(
            this,
            "read failed: one of the features in "
                + location
                + " has an out of range location: "
                + e.getMessage());
      }
    } else new MessageDialog(this, "the -biojava option needs two arguments");
  }