/** * factory.ts * Copyright (C) 2021 Sanar * * @author Edgard Leal * @module factory.ts */ import BackupReader from './backup-reader'; import BackupWriter from './backup-writer'; import DiskBackupFinder from './disk/disk-backup-finder'; import DiskBackupReader from './disk/disk-backup-reader'; import DiskBackupWriter from './disk/disk-backup-writer'; /** * Create implemetations related do database * @author edgardleal@gmail.com * @since 04.03.21 */ export default class DBFactory { private backupReader: DiskBackupReader; private backupWriter: any; private backupFinder: DiskBackupFinder; getBackupReader(): BackupReader { if (!this.backupReader) { this.backupReader = new DiskBackupReader(); } return this.backupReader; } getBackupWriter(): BackupWriter { if (!this.backupWriter) { this.backupWriter = new DiskBackupWriter(); } return this.backupWriter; } getBackupFinder() { if (!this.backupFinder) { this.backupFinder = new DiskBackupFinder(this.getBackupReader()); } return this.backupFinder; } }