refactor(simulator): remove unneeded intermediate variable in firmware
[e-mobility-charging-stations-simulator.git] / src / charging-station / SharedLRUCache.ts
index 01e18734b673295004a3c033a5db37bd382d6c58..6b6df2049117f96a6c3df3881a73a1f4c5ae28fa 100644 (file)
@@ -1,7 +1,8 @@
 import LRUCache from 'mnemonist/lru-map-with-delete';
 
-import type ChargingStationConfiguration from '../types/ChargingStationConfiguration';
-import type ChargingStationTemplate from '../types/ChargingStationTemplate';
+import { Bootstrap } from '../internal';
+import type { ChargingStationConfiguration } from '../types/ChargingStationConfiguration';
+import type { ChargingStationTemplate } from '../types/ChargingStationTemplate';
 import Utils from '../utils/Utils';
 
 enum CacheType {
@@ -16,7 +17,10 @@ export default class SharedLRUCache {
   private readonly lruCache: LRUCache<string, CacheableType>;
 
   private constructor() {
-    this.lruCache = new LRUCache<string, CacheableType>(1000);
+    this.lruCache = new LRUCache<string, CacheableType>(
+      Bootstrap.getInstance().numberOfChargingStationTemplates +
+        Bootstrap.getInstance().numberOfChargingStations
+    );
   }
 
   public static getInstance(): SharedLRUCache {
@@ -79,18 +83,18 @@ export default class SharedLRUCache {
   }
 
   private getChargingStationConfigurationKey(hash: string): string {
-    return CacheType.CHARGING_STATION_CONFIGURATION + hash;
+    return `${CacheType.CHARGING_STATION_CONFIGURATION}${hash}`;
   }
 
   private getChargingStationTemplateKey(hash: string): string {
-    return CacheType.CHARGING_STATION_TEMPLATE + hash;
+    return `${CacheType.CHARGING_STATION_TEMPLATE}${hash}`;
   }
 
   private has(key: string): boolean {
     return this.lruCache.has(key);
   }
 
-  private get(key: string): CacheableType {
+  private get(key: string): CacheableType | undefined {
     return this.lruCache.get(key);
   }
 
@@ -106,12 +110,12 @@ export default class SharedLRUCache {
     chargingStationConfiguration: ChargingStationConfiguration
   ): boolean {
     return (
-      !Utils.isNullOrUndefined(chargingStationConfiguration?.configurationKey) &&
-      !Utils.isNullOrUndefined(chargingStationConfiguration?.stationInfo) &&
-      !Utils.isNullOrUndefined(chargingStationConfiguration?.configurationHash) &&
-      !Utils.isEmptyArray(chargingStationConfiguration?.configurationKey) &&
-      !Utils.isEmptyObject(chargingStationConfiguration?.stationInfo) &&
-      !Utils.isEmptyString(chargingStationConfiguration?.configurationHash)
+      Utils.isNullOrUndefined(chargingStationConfiguration?.configurationKey) === false &&
+      Utils.isNullOrUndefined(chargingStationConfiguration?.stationInfo) === false &&
+      Utils.isNullOrUndefined(chargingStationConfiguration?.configurationHash) === false &&
+      Utils.isEmptyArray(chargingStationConfiguration?.configurationKey) === false &&
+      Utils.isEmptyObject(chargingStationConfiguration?.stationInfo) === false &&
+      Utils.isEmptyString(chargingStationConfiguration?.configurationHash) === false
     );
   }
 }