package dbfit.util.crypto; public class AESCryptoServiceFactory implements CryptoServiceFactory { private static CryptoService cryptoServiceInstance = null; // caching private CryptoKeyAccessor keyAccessor; public AESCryptoServiceFactory(CryptoKeyAccessor keyAccessor) { this.keyAccessor = keyAccessor; } public AESCryptoServiceFactory() { this(CryptoFactories.getCryptoKeyStoreFactory().newInstance()); } @Override public CryptoService getCryptoService() { if (cryptoServiceInstance == null) { cryptoServiceInstance = new AESCryptoService(keyAccessor); } return cryptoServiceInstance; } // Overrides the default accessor of this factory instance. No caching used @Override public CryptoService getCryptoService(CryptoKeyAccessor accessor) { return new AESCryptoService(accessor); } }