Package org.springframework.validation.support

# Class BindingAwareConcurrentModel

java.lang.Object
java.util.AbstractMap<K,V>
java.util.concurrent.ConcurrentHashMap<String,Object>
org.springframework.ui.ConcurrentModel
org.springframework.validation.support.BindingAwareConcurrentModel

All Implemented Interfaces:
  `Serializable`, `ConcurrentMap<String,Object>`, `Map<String,Object>`, `Model`

public class BindingAwareConcurrentModel extends ConcurrentModel
Subclass of `ConcurrentModel` that automatically removes the `BindingResult` object when its corresponding target attribute is replaced through regular `Map` operations.

This is the class exposed to handler methods by Spring WebFlux, typically consumed through a declaration of the `Model` interface as a parameter type. There is typically no need to create it within user code. If necessary a handler method can return a regular `java.util.Map`, likely a `java.util.ConcurrentMap`, for a pre-determined model.

Since:
  5.0
Author:
  Rossen Stoyanchev
See Also:
  - `BindingResult`
  - `BindingAwareModelMap`
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class java.util.concurrent.ConcurrentHashMap

`ConcurrentHashMap.KeySetView<K extends Object,V extends Object>`

## Nested classes/interfaces inherited from class java.util.AbstractMap

`AbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,V extends Object>`

## Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K extends Object,V extends Object>`

## Constructor Summary

Constructors
Constructor
Description
`BindingAwareConcurrentModel()`

## Method Summary

Modifier and Type
Method
Description
`Object`
`put(String key, Object value)`

### Methods inherited from class org.springframework.ui.ConcurrentModel

`addAllAttributes, addAllAttributes, addAttribute, addAttribute, asMap, containsAttribute, getAttribute, mergeAttributes, putAll`

### Methods inherited from class java.util.concurrent.ConcurrentHashMap

`clear, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, forEach, forEach, forEach, forEachEntry, forEachEntry, forEachKey, forEachKey, forEachValue, forEachValue, get, getOrDefault, hashCode, isEmpty, keys, keySet, keySet, mappingCount, merge, newKeySet, newKeySet, putIfAbsent, reduce, reduceEntries, reduceEntries, reduceEntriesToDouble, reduceEntriesToInt, reduceEntriesToLong, reduceKeys, reduceKeys, reduceKeysToDouble, reduceKeysToInt, reduceKeysToLong, reduceToDouble, reduceToInt, reduceToLong, reduceValues, reduceValues, reduceValuesToDouble, reduceValuesToInt, reduceValuesToLong, remove, remove, replace, replace, replaceAll, search, searchEntries, searchKeys, searchValues, size, toString, values`

### Methods inherited from class java.util.AbstractMap

`clone`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### BindingAwareConcurrentModel

public BindingAwareConcurrentModel()

## Method Details

### put

@Nullable public Object put(String key, @Nullable Object value)

Specified by:
  `put` in interface `Map<String,Object>`
Overrides:
  `put` in class `ConcurrentModel`