class ListPropertySourceReloader<T> implements HotswapSpringPropertiesReloader<List<Map<String, T>>> {

    private static AgentLogger LOGGER = AgentLogger.getLogger(ListPropertySourceReloader.class);

    protected final String name;
    protected final Resource resource;
    protected List<Map<String, T>> hotswapMapList;

    public ListPropertySourceReloader(String name, Resource resource) {
        this.name = name;
        this.resource = resource;
    }

    Map<String, T> createMap(Map map) {
        return new HotswapSpringReloadMap<>(map);
    }

    void updateItemValue(Map hotswapMap, Map newHotswapMap) {
        if (hotswapMap instanceof HotswapSpringReloadMap) {
            ((HotswapSpringReloadMap) hotswapMap).update(newHotswapMap);
        }
    }

    @Override
    public void update(List<Map<String, T>> newValue) {<FILL_FUNCTION_BODY>}

    @Override
    public List<Map<String, T>> get() {
        return hotswapMapList;
    }
}

        if (newValue == null || newValue.isEmpty()) {
            hotswapMapList = (newValue == null ? Collections.emptyList() : newValue);
            return;
        }
        if (hotswapMapList == null) {
            synchronized (this) {
                if (hotswapMapList == null) {
                    hotswapMapList = new ArrayList<>(newValue.size());
                    for (Map<String, ?> map : newValue) {
                        hotswapMapList.add(createMap(map));
                    }
                    return;
                }
            }
        }
        for (int i = 0; i < hotswapMapList.size(); i++) {
            Map<String, ?> hotswapMap = hotswapMapList.get(i);
            Map<String, ?> newHotswapMap = newValue.get(i);
            updateItemValue(hotswapMap, newHotswapMap);
        }
    
<no_super_class>