feat(renderer): replace HashMap with ConcurrentHashMap for thread-safe control caching
This commit is contained in:
@@ -2,9 +2,9 @@ package de.extio.game_engine.renderer.g2d.control;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -15,6 +15,7 @@ import de.extio.game_engine.renderer.g2d.control.impl.G2DBaseControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DButtonControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DLabelControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DMultiLineTextAreaControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DPopupMenuControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DSetFocusControl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DSliderControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DSwitchControlImpl;
|
||||
@@ -24,7 +25,6 @@ import de.extio.game_engine.renderer.g2d.control.impl.G2DToggleButtonControlImpl
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DTooltipControl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DWindowCloseButtonControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DWindowPanelControlImpl;
|
||||
import de.extio.game_engine.renderer.g2d.control.impl.G2DPopupMenuControlImpl;
|
||||
import de.extio.game_engine.renderer.model.RenderingBo;
|
||||
import de.extio.game_engine.renderer.model.RenderingBoLayer;
|
||||
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo;
|
||||
@@ -37,9 +37,9 @@ public class G2DDrawControl extends G2DAbstractRenderingBo implements ControlRen
|
||||
|
||||
private final static Logger LOGGER = LoggerFactory.getLogger(G2DDrawControl.class);
|
||||
|
||||
public static Map<String, BaseControl> CACHED_CONTROLS = new HashMap<>();
|
||||
public static Map<String, BaseControl> CACHED_CONTROLS = new ConcurrentHashMap<>();
|
||||
|
||||
public static Map<String, List<BaseControl>> CONTROL_GROUPS = new HashMap<>();
|
||||
public static Map<String, List<BaseControl>> CONTROL_GROUPS = new ConcurrentHashMap<>();
|
||||
|
||||
private Class<? extends BaseControl> clazz;
|
||||
|
||||
@@ -218,8 +218,7 @@ public class G2DDrawControl extends G2DAbstractRenderingBo implements ControlRen
|
||||
|
||||
if (this.customControlConfigurations == null) {
|
||||
@SuppressWarnings("unchecked")
|
||||
final
|
||||
var beans = (java.util.Collection<CustomControlConfiguration<? extends G2DBaseControlImpl>>) (java.util.Collection<?>) this.rendererData.getApplicationContext().getBeansOfType(CustomControlConfiguration.class).values();
|
||||
final var beans = (java.util.Collection<CustomControlConfiguration<? extends G2DBaseControlImpl>>) (java.util.Collection<?>) this.rendererData.getApplicationContext().getBeansOfType(CustomControlConfiguration.class).values();
|
||||
this.customControlConfigurations = List.copyOf(beans);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user