1313import org .elasticsearch .TransportVersions ;
1414import org .elasticsearch .cluster .AbstractNamedDiffable ;
1515import org .elasticsearch .cluster .NamedDiff ;
16+ import org .elasticsearch .common .collect .ImmutableOpenMap ;
1617import org .elasticsearch .common .collect .Iterators ;
1718import org .elasticsearch .common .io .stream .StreamInput ;
1819import org .elasticsearch .common .io .stream .StreamOutput ;
1920import org .elasticsearch .common .xcontent .ChunkedToXContentHelper ;
21+ import org .elasticsearch .xcontent .ConstructingObjectParser ;
22+ import org .elasticsearch .xcontent .ParseField ;
2023import org .elasticsearch .xcontent .ToXContent ;
24+ import org .elasticsearch .xcontent .XContentParser ;
2125
2226import java .io .IOException ;
2327import java .util .EnumSet ;
@@ -32,6 +36,14 @@ public class StreamsMetadata extends AbstractNamedDiffable<Metadata.ProjectCusto
3236
3337 public static final String TYPE = "streams" ;
3438 public static final StreamsMetadata EMPTY = new StreamsMetadata (false );
39+ private static final ParseField LOGS_ENABLED = new ParseField ("logs_enabled" );
40+ private static final ConstructingObjectParser <StreamsMetadata , Void > PARSER = new ConstructingObjectParser <>(TYPE , false , args -> {
41+ boolean logsEnabled = (boolean ) args [0 ];
42+ return new StreamsMetadata (logsEnabled );
43+ });
44+ static {
45+ PARSER .declareBoolean (ConstructingObjectParser .constructorArg (), LOGS_ENABLED );
46+ }
3547
3648 public boolean logsEnabled ;
3749
@@ -79,7 +91,7 @@ public void writeTo(StreamOutput out) throws IOException {
7991
8092 @ Override
8193 public Iterator <? extends ToXContent > toXContentChunked (ToXContent .Params params ) {
82- return Iterators .concat (ChunkedToXContentHelper .chunk ((builder , bParams ) -> builder .field ("logs_enabled" , logsEnabled )));
94+ return Iterators .concat (ChunkedToXContentHelper .chunk ((builder , bParams ) -> builder .field (LOGS_ENABLED . getPreferredName () , logsEnabled )));
8395 }
8496
8597 @ Override
@@ -95,4 +107,8 @@ public boolean equals(Object o) {
95107 public int hashCode () {
96108 return Objects .hashCode (logsEnabled );
97109 }
110+
111+ public static StreamsMetadata fromXContent (XContentParser parser ) throws IOException {
112+ return PARSER .parse (parser , null );
113+ }
98114}
0 commit comments