2012b500e544485c8f0f607ea4d9b89a5ac363a4
[e-mobility-charging-stations-simulator.git] / src / utils / performance-storage / StorageFactory.ts
1 import { JSONFileStorage } from './JSONFileStorage';
2 import { MongoDBStorage } from './MongoDBStorage';
3 import { Storage } from './Storage';
4 import { StorageType } from '../../types/Storage';
5 import logger from '../Logger';
6
7 export class StorageFactory {
8 // eslint-disable-next-line @typescript-eslint/no-empty-function
9 private constructor() {
10 // This is intentional
11 }
12
13 public static getStorage(type: StorageType, connectionURI: string, logPrefix: string): Storage {
14 let storageInstance: Storage = null;
15 switch (type) {
16 case StorageType.JSON_FILE:
17 storageInstance = new JSONFileStorage(connectionURI, logPrefix);
18 break;
19 case StorageType.MONGO_DB:
20 storageInstance = new MongoDBStorage(connectionURI, logPrefix);
21 break;
22 default:
23 logger.error(`${logPrefix} Unknown storage type: ${type}`);
24 }
25 return storageInstance;
26 }
27 }