
org.elasticsearch.common.collect.MapBuilder Maven / Gradle / Ivy
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
package org.elasticsearch.common.collect;
import java.util.HashMap;
import java.util.Map;
// TODO: replace with usages of Map.of and Map.ofEntries
public class MapBuilder {
public static MapBuilder newMapBuilder() {
return new MapBuilder<>();
}
public static MapBuilder newMapBuilder(Map map) {
return new MapBuilder<>(map);
}
private final Map map;
public MapBuilder() {
this.map = new HashMap<>();
}
public MapBuilder(Map map) {
this.map = new HashMap<>(map);
}
public MapBuilder putAll(Map map) {
this.map.putAll(map);
return this;
}
public MapBuilder put(K key, V value) {
this.map.put(key, value);
return this;
}
public MapBuilder remove(K key) {
this.map.remove(key);
return this;
}
public Map map() {
return this.map;
}
/**
* Build an immutable copy of the map under construction. Always copies the map under construction. Prefer building
* a HashMap by hand and wrapping it in an unmodifiableMap
*/
public Map immutableMap() {
// TODO: follow the directions in the Javadoc for this method
return Map.copyOf(map);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy