Performance statistics: add JSON file storage support.
[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
11 public static getStorage(type: StorageType, connectionURI: string, logPrefix: string): Storage {
12 let storageInstance: Storage = null;
13 switch (type) {
14 case StorageType.JSON_FILE:
15 storageInstance = new JSONFileStorage(connectionURI, logPrefix);
16 break;
17 case StorageType.MONGO_DB:
18 storageInstance = new MongoDBStorage(connectionURI, logPrefix);
19 break;
20 default:
21 logger.error(`${logPrefix} Unknown storage type: ${type}`);
22 }
23 return storageInstance;
24 }
25 }