# Enum KeyStoreFileType

java.lang.Object
java.lang.Enum<KeyStoreFileType>
org.apache.zookeeper.common.KeyStoreFileType

All Implemented Interfaces:
  `Serializable, Comparable<KeyStoreFileType>`

public enum KeyStoreFileType extends Enum<KeyStoreFileType>
This enum represents the file type of a KeyStore or TrustStore. Currently, JKS (Java keystore), PEM, PKCS12, and BCFKS types are supported.

## Enum Constant Summary

Enum Constants
Enum Constant
Description
`BCFKS`
`JKS`
`PEM`
`PKCS12`

## Method Summary

Modifier and Type
Method
Description
`static KeyStoreFileType`
`fromFilename(String filename)`
Detects the type of KeyStore / TrustStore file from the file extension.
`static KeyStoreFileType`
`fromPropertyValue(String propertyValue)`
Converts a property value to a StoreFileType enum.
`static KeyStoreFileType`
`fromPropertyValueOrFileName(String propertyValue, String filename)`
If `propertyValue` is not null or empty, returns the result of `KeyStoreFileType.fromPropertyValue(propertyValue)`.
`String`
`getDefaultFileExtension()`
The file extension that is associated with this file type.
`String`
`getPropertyValue()`
The property string that specifies that a key store or trust store should use this store file type.
`static KeyStoreFileType`
`valueOf(String name)`
Returns the enum constant of this type with the specified name.
`static KeyStoreFileType[]`
`values()`
Returns an array containing the constants of this enum type, in the order they are declared.

### Methods inherited from class Enum

`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

### Methods inherited from class Object

`getClass, notify, notifyAll, wait, wait, wait`

## Enum Constant Details

### JKS

public static final KeyStoreFileType JKS

### PEM

public static final KeyStoreFileType PEM

### PKCS12

public static final KeyStoreFileType PKCS12

### BCFKS

public static final KeyStoreFileType BCFKS

## Method Details

### values

public static KeyStoreFileType[] values()
Returns an array containing the constants of this enum type, in the order they are declared.

Returns:
  an array containing the constants of this enum type, in the order they are declared

### valueOf

public static KeyStoreFileType valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum type has no constant with the specified name
  `NullPointerException` - if the argument is null

### getPropertyValue

public String getPropertyValue()
The property string that specifies that a key store or trust store should use this store file type.

### getDefaultFileExtension

public String getDefaultFileExtension()
The file extension that is associated with this file type.

### fromPropertyValue

public static KeyStoreFileType fromPropertyValue(String propertyValue)
Converts a property value to a StoreFileType enum. If the property value is `null` or an empty string, returns `null`.

Parameters:
  `propertyValue` - the property value.
Returns:
  the KeyStoreFileType, or `null` if `propertyValue` is `null` or empty.
Throws:
  `IllegalArgumentException` - if `propertyValue` is not one of "JKS", "PEM", "BCFKS", "PKCS12", or empty/null.

### fromFilename

public static KeyStoreFileType fromFilename(String filename)
Detects the type of KeyStore / TrustStore file from the file extension. If the file name ends with ".jks", returns `StoreFileType.JKS`. If the file name ends with ".pem", returns `StoreFileType.PEM`. If the file name ends with ".p12", returns `StoreFileType.PKCS12`. If the file name ends with ".bckfs", returns `StoreFileType.BCKFS`. Otherwise, throws an IllegalArgumentException.

Parameters:
  `filename` - the filename of the key store or trust store file.
Returns:
  a KeyStoreFileType.
Throws:
  `IllegalArgumentException` - if the filename does not end with ".jks", ".pem", "p12" or "bcfks".

### fromPropertyValueOrFileName

public static KeyStoreFileType fromPropertyValueOrFileName(String propertyValue, String filename)
If `propertyValue` is not null or empty, returns the result of `KeyStoreFileType.fromPropertyValue(propertyValue)`. Else, returns the result of `KeyStoreFileType.fromFileName(filename)`.

Parameters:
  `propertyValue` - property value describing the KeyStoreFileType, or null/empty to auto-detect the type from the file name.
  `filename` - file name of the key store file. The file extension is used to auto-detect the KeyStoreFileType when `propertyValue` is null or empty.
Returns:
  a KeyStoreFileType.
Throws:
  `IllegalArgumentException` - if `propertyValue` is not one of "JKS", "PEM", "PKCS12", "BCFKS", or empty/null.
  `IllegalArgumentException` - if `propertyValue`is empty or null and the type could not be determined from the file name.