26
26
import org .elasticsearch .common .xcontent .ToXContentObject ;
27
27
import org .elasticsearch .common .xcontent .XContentBuilder ;
28
28
import org .elasticsearch .common .xcontent .XContentParser ;
29
+ import org .elasticsearch .search .fetch .subphase .FetchSourceContext ;
29
30
30
31
import java .io .IOException ;
31
32
import java .util .Arrays ;
@@ -44,20 +45,27 @@ public static Builder builder() {
44
45
45
46
private static final ParseField INDEX = new ParseField ("index" );
46
47
private static final ParseField QUERY = new ParseField ("query" );
48
+ public static final ParseField _SOURCE = new ParseField ("_source" );
47
49
48
50
private static ObjectParser <Builder , Void > PARSER = new ObjectParser <>("data_frame_analytics_source" , true , Builder ::new );
49
51
50
52
static {
51
53
PARSER .declareStringArray (Builder ::setIndex , INDEX );
52
54
PARSER .declareObject (Builder ::setQueryConfig , (p , c ) -> QueryConfig .fromXContent (p ), QUERY );
55
+ PARSER .declareField (Builder ::setSourceFiltering ,
56
+ (p , c ) -> FetchSourceContext .fromXContent (p ),
57
+ _SOURCE ,
58
+ ObjectParser .ValueType .OBJECT_ARRAY_BOOLEAN_OR_STRING );
53
59
}
54
60
55
61
private final String [] index ;
56
62
private final QueryConfig queryConfig ;
63
+ private final FetchSourceContext sourceFiltering ;
57
64
58
- private DataFrameAnalyticsSource (String [] index , @ Nullable QueryConfig queryConfig ) {
65
+ private DataFrameAnalyticsSource (String [] index , @ Nullable QueryConfig queryConfig , @ Nullable FetchSourceContext sourceFiltering ) {
59
66
this .index = Objects .requireNonNull (index );
60
67
this .queryConfig = queryConfig ;
68
+ this .sourceFiltering = sourceFiltering ;
61
69
}
62
70
63
71
public String [] getIndex () {
@@ -68,13 +76,20 @@ public QueryConfig getQueryConfig() {
68
76
return queryConfig ;
69
77
}
70
78
79
+ public FetchSourceContext getSourceFiltering () {
80
+ return sourceFiltering ;
81
+ }
82
+
71
83
@ Override
72
84
public XContentBuilder toXContent (XContentBuilder builder , Params params ) throws IOException {
73
85
builder .startObject ();
74
86
builder .field (INDEX .getPreferredName (), index );
75
87
if (queryConfig != null ) {
76
88
builder .field (QUERY .getPreferredName (), queryConfig .getQuery ());
77
89
}
90
+ if (sourceFiltering != null ) {
91
+ builder .field (_SOURCE .getPreferredName (), sourceFiltering );
92
+ }
78
93
builder .endObject ();
79
94
return builder ;
80
95
}
@@ -86,12 +101,13 @@ public boolean equals(Object o) {
86
101
87
102
DataFrameAnalyticsSource other = (DataFrameAnalyticsSource ) o ;
88
103
return Arrays .equals (index , other .index )
89
- && Objects .equals (queryConfig , other .queryConfig );
104
+ && Objects .equals (queryConfig , other .queryConfig )
105
+ && Objects .equals (sourceFiltering , other .sourceFiltering );
90
106
}
91
107
92
108
@ Override
93
109
public int hashCode () {
94
- return Objects .hash (Arrays .asList (index ), queryConfig );
110
+ return Objects .hash (Arrays .asList (index ), queryConfig , sourceFiltering );
95
111
}
96
112
97
113
@ Override
@@ -103,6 +119,7 @@ public static class Builder {
103
119
104
120
private String [] index ;
105
121
private QueryConfig queryConfig ;
122
+ private FetchSourceContext sourceFiltering ;
106
123
107
124
private Builder () {}
108
125
@@ -121,8 +138,13 @@ public Builder setQueryConfig(QueryConfig queryConfig) {
121
138
return this ;
122
139
}
123
140
141
+ public Builder setSourceFiltering (FetchSourceContext sourceFiltering ) {
142
+ this .sourceFiltering = sourceFiltering ;
143
+ return this ;
144
+ }
145
+
124
146
public DataFrameAnalyticsSource build () {
125
- return new DataFrameAnalyticsSource (index , queryConfig );
147
+ return new DataFrameAnalyticsSource (index , queryConfig , sourceFiltering );
126
148
}
127
149
}
128
150
}
0 commit comments