Home | History | Annotate | Download | only in ssl
      1 /*
      2  *  Licensed to the Apache Software Foundation (ASF) under one or more
      3  *  contributor license agreements.  See the NOTICE file distributed with
      4  *  this work for additional information regarding copyright ownership.
      5  *  The ASF licenses this file to You under the Apache License, Version 2.0
      6  *  (the "License"); you may not use this file except in compliance with
      7  *  the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  */
     17 
     18 package javax.net.ssl;
     19 
     20 import java.security.KeyStore;
     21 import java.util.ArrayList;
     22 import java.util.Collections;
     23 import java.util.List;
     24 
     25 /**
     26  * The parameters for {@code KeyManager}s. The parameters are a list of
     27  * {@code KeyStore.Builder}s.
     28  *
     29  * @since 1.5
     30  * @see KeyStore.Builder
     31  */
     32 public class KeyStoreBuilderParameters implements ManagerFactoryParameters {
     33 
     34     private final List<KeyStore.Builder> ksbuilders;
     35 
     36     /**
     37      * Creates a new {@code KeyStoreBuilderParameters} with the specified key
     38      * store builder.
     39      *
     40      * @param builder
     41      *            the key store builder.
     42      */
     43     public KeyStoreBuilderParameters(KeyStore.Builder builder) {
     44         if (builder == null) {
     45             throw new NullPointerException("builder == null");
     46         }
     47         ksbuilders = Collections.singletonList(builder);
     48     }
     49 
     50     /**
     51      * Creates a new {@code KeyStoreBuilderParameters} with the specified list
     52      * of {@code KeyStore.Builder}s.
     53      *
     54      * @param parameters
     55      *            the list of key store builders
     56      * @throws IllegalArgumentException
     57      *             if the specified list is empty.
     58      */
     59     public KeyStoreBuilderParameters(List<KeyStore.Builder> parameters) {
     60         if (parameters == null) {
     61             throw new NullPointerException("parameters == null");
     62         }
     63         if (parameters.isEmpty()) {
     64             throw new IllegalArgumentException("parameters.isEmpty()");
     65         }
     66         ksbuilders = Collections.unmodifiableList(new ArrayList<KeyStore.Builder>(parameters));
     67     }
     68 
     69     /**
     70      * Returns the unmodifiable list of {@code KeyStore.Builder}s associated
     71      * with this parameters instance.
     72      *
     73      * @return the unmodifiable list of {@code KeyStore.Builder}s.
     74      */
     75     public List<KeyStore.Builder> getParameters() {
     76         return ksbuilders;
     77     }
     78 }
     79