Beispiel #1
0
 /**
  * Insert the given {@code Provider} at the specified {@code position}. The positions define the
  * preference order in which providers are searched for requested algorithms.
  *
  * @param provider the provider to insert.
  * @param position the position (starting from 1).
  * @return the actual position or {@code -1} if the given {@code provider} was already in the
  *     list. The actual position may be different from the desired position.
  */
 public static synchronized int insertProviderAt(Provider provider, int position) {
   // check that provider is not already
   // installed, else return -1; if (position <1) or (position > max
   // position) position = max position + 1; insert provider, shift up
   // one position for next providers; Note: The position is 1-based
   if (getProvider(provider.getName()) != null) {
     return -1;
   }
   int result = Services.insertProviderAt(provider, position);
   renumProviders();
   return result;
 }
Beispiel #2
0
  /**
   * Removes the {@code Provider} with the specified name form the collection of providers. If the
   * the {@code Provider} with the specified name is removed, all provider at a greater position are
   * shifted down one position.
   *
   * <p>Returns silently if {@code name} is {@code null} or no provider with the specified name is
   * installed.
   *
   * @param name the name of the provider to remove.
   */
  public static synchronized void removeProvider(String name) {
    // It is not clear from spec.:
    // 1. if name is null, should we checkSecurityAccess or not?
    //    throw SecurityException or not?
    // 2. as 1 but provider is not installed
    // 3. behavior if name is empty string?

    Provider p;
    if ((name == null) || (name.length() == 0)) {
      return;
    }
    p = getProvider(name);
    if (p == null) {
      return;
    }
    Services.removeProvider(p.getProviderNumber());
    renumProviders();
    p.setProviderNumber(-1);
  }
Beispiel #3
0
 // Access to Security.renumProviders()
 public void renumProviders() {
   Security.renumProviders();
 }