1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 
19 package org.apache.zookeeper.common;
20 
21 import java.util.Objects;
22 
23 public class FileKeyStoreLoaderBuilderProvider {
24 
25     /**
26      * Returns a {@link FileKeyStoreLoader.Builder} that can build a loader
27      * which loads keys and certs from files of the given
28      * {@link KeyStoreFileType}.
29      *
30      * @param type the file type to load keys/certs from.
31      * @return a new Builder.
32      */
getBuilderForKeyStoreFileType(KeyStoreFileType type)33     static FileKeyStoreLoader.Builder<? extends FileKeyStoreLoader> getBuilderForKeyStoreFileType(KeyStoreFileType type) {
34         switch (Objects.requireNonNull(type)) {
35         case JKS:
36             return new JKSFileLoader.Builder();
37         case PEM:
38             return new PEMFileLoader.Builder();
39         case PKCS12:
40             return new PKCS12FileLoader.Builder();
41         case BCFKS:
42             return new BCFKSFileLoader.Builder();
43         default:
44             throw new AssertionError("Unexpected StoreFileType: " + type.name());
45         }
46     }
47 
48 }
49