org.elasticsearch.common.collect.MapBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticsearch Show documentation
Show all versions of elasticsearch Show documentation
Elasticsearch subproject :server
/*
* 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);
}
}