Refactor truststore merger logic
[oom/platform/cert-service.git] / trustStoreMerger / src / main / java / org / onap / oom / truststoremerger / merger / model / Truststore.java
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.oom.truststoremerger.certification.file.provider;
+package org.onap.oom.truststoremerger.merger.model;
 
+import java.io.File;
 import java.util.List;
 import org.onap.oom.truststoremerger.api.ExitableException;
-import org.onap.oom.truststoremerger.certification.file.provider.entry.CertificateWithAlias;
+import org.onap.oom.truststoremerger.merger.exception.CreateBackupException;
+import org.onap.oom.truststoremerger.merger.model.certificate.CertificateWithAlias;
+import org.onap.oom.truststoremerger.common.BackupCreator;
 
-public interface CertificateController {
+public abstract class Truststore {
 
-    List<CertificateWithAlias> getNotEmptyCertificateList() throws ExitableException;
+    final File storeFile;
 
-    void addCertificates(List<CertificateWithAlias> certificates) throws ExitableException;
+    public Truststore(File storeFile) {
+        this.storeFile = storeFile;
+    }
 
-    void saveFile() throws ExitableException;
+    public void createBackup() throws CreateBackupException {
+        BackupCreator.createBackup(storeFile);
+    }
+
+    public abstract List<CertificateWithAlias> getCertificates() throws ExitableException;
+
+    public abstract void addCertificates(List<CertificateWithAlias> certificates) throws ExitableException;
+
+    public abstract void saveFile() throws ExitableException;
 }