Add generic properties map to ProblemDetail
Closes gh-28665
This commit is contained in:
parent
b72ee5f034
commit
c139f3d526
|
@ -17,6 +17,8 @@
|
|||
package org.springframework.http;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
|
@ -54,6 +56,9 @@ public class ProblemDetail {
|
|||
@Nullable
|
||||
private URI instance;
|
||||
|
||||
@Nullable
|
||||
private Map<String, Object> properties;
|
||||
|
||||
|
||||
/**
|
||||
* Protected constructor for subclasses.
|
||||
|
@ -75,6 +80,7 @@ public class ProblemDetail {
|
|||
this.status = other.status;
|
||||
this.detail = other.detail;
|
||||
this.instance = other.instance;
|
||||
this.properties = (other.properties != null ? new LinkedHashMap<>(other.properties) : null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -201,6 +207,18 @@ public class ProblemDetail {
|
|||
this.instance = instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a "dynamic" property to be added to a generic {@link #getProperties()
|
||||
* properties map}.
|
||||
* @param name the property name
|
||||
* @param value the property value
|
||||
*/
|
||||
public void setProperty(String name, Object value) {
|
||||
this.properties = (this.properties != null ? this.properties : new LinkedHashMap<>());
|
||||
this.properties.put(name, value);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Getters
|
||||
|
||||
|
@ -249,6 +267,14 @@ public class ProblemDetail {
|
|||
return this.instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a generic map of properties that are not known ahead of time.
|
||||
*/
|
||||
@Nullable
|
||||
public Map<String, Object> getProperties() {
|
||||
return this.properties;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
@ -264,7 +290,8 @@ public class ProblemDetail {
|
|||
", title='" + getTitle() + "'" +
|
||||
", status=" + getStatus() +
|
||||
", detail='" + getDetail() + "'" +
|
||||
", instance='" + getInstance() + "'";
|
||||
", instance='" + getInstance() + "'" +
|
||||
", properties='" + getProperties() + "'";
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue