2121
2222import org .apache .http .Header ;
2323import org .elasticsearch .action .ActionListener ;
24+ import org .elasticsearch .action .admin .indices .alias .get .GetAliasesRequest ;
2425import org .elasticsearch .action .admin .indices .close .CloseIndexRequest ;
2526import org .elasticsearch .action .admin .indices .close .CloseIndexResponse ;
2627import org .elasticsearch .action .admin .indices .alias .IndicesAliasesRequest ;
3536import org .elasticsearch .action .admin .indices .open .OpenIndexResponse ;
3637
3738import java .io .IOException ;
38- import java .util .Collections ;
39+
40+ import static java .util .Collections .emptySet ;
3941
4042/**
4143 * A wrapper for the {@link RestHighLevelClient} that provides methods for accessing the Indices API.
@@ -57,7 +59,7 @@ public final class IndicesClient {
5759 */
5860 public DeleteIndexResponse delete (DeleteIndexRequest deleteIndexRequest , Header ... headers ) throws IOException {
5961 return restHighLevelClient .performRequestAndParseEntity (deleteIndexRequest , Request ::deleteIndex , DeleteIndexResponse ::fromXContent ,
60- Collections . emptySet (), headers );
62+ emptySet (), headers );
6163 }
6264
6365 /**
@@ -68,7 +70,7 @@ public DeleteIndexResponse delete(DeleteIndexRequest deleteIndexRequest, Header.
6870 */
6971 public void deleteAsync (DeleteIndexRequest deleteIndexRequest , ActionListener <DeleteIndexResponse > listener , Header ... headers ) {
7072 restHighLevelClient .performRequestAsyncAndParseEntity (deleteIndexRequest , Request ::deleteIndex , DeleteIndexResponse ::fromXContent ,
71- listener , Collections . emptySet (), headers );
73+ listener , emptySet (), headers );
7274 }
7375
7476 /**
@@ -79,7 +81,7 @@ public void deleteAsync(DeleteIndexRequest deleteIndexRequest, ActionListener<De
7981 */
8082 public CreateIndexResponse create (CreateIndexRequest createIndexRequest , Header ... headers ) throws IOException {
8183 return restHighLevelClient .performRequestAndParseEntity (createIndexRequest , Request ::createIndex , CreateIndexResponse ::fromXContent ,
82- Collections . emptySet (), headers );
84+ emptySet (), headers );
8385 }
8486
8587 /**
@@ -90,7 +92,7 @@ public CreateIndexResponse create(CreateIndexRequest createIndexRequest, Header.
9092 */
9193 public void createAsync (CreateIndexRequest createIndexRequest , ActionListener <CreateIndexResponse > listener , Header ... headers ) {
9294 restHighLevelClient .performRequestAsyncAndParseEntity (createIndexRequest , Request ::createIndex , CreateIndexResponse ::fromXContent ,
93- listener , Collections . emptySet (), headers );
95+ listener , emptySet (), headers );
9496 }
9597
9698 /**
@@ -101,7 +103,7 @@ public void createAsync(CreateIndexRequest createIndexRequest, ActionListener<Cr
101103 */
102104 public PutMappingResponse putMapping (PutMappingRequest putMappingRequest , Header ... headers ) throws IOException {
103105 return restHighLevelClient .performRequestAndParseEntity (putMappingRequest , Request ::putMapping , PutMappingResponse ::fromXContent ,
104- Collections . emptySet (), headers );
106+ emptySet (), headers );
105107 }
106108
107109 /**
@@ -113,7 +115,7 @@ public PutMappingResponse putMapping(PutMappingRequest putMappingRequest, Header
113115 public void putMappingAsync (PutMappingRequest putMappingRequest , ActionListener <PutMappingResponse > listener ,
114116 Header ... headers ) {
115117 restHighLevelClient .performRequestAsyncAndParseEntity (putMappingRequest , Request ::putMapping , PutMappingResponse ::fromXContent ,
116- listener , Collections . emptySet (), headers );
118+ listener , emptySet (), headers );
117119 }
118120
119121 /**
@@ -125,7 +127,7 @@ public void putMappingAsync(PutMappingRequest putMappingRequest, ActionListener<
125127 */
126128 public IndicesAliasesResponse updateAliases (IndicesAliasesRequest indicesAliasesRequest , Header ... headers ) throws IOException {
127129 return restHighLevelClient .performRequestAndParseEntity (indicesAliasesRequest , Request ::updateAliases ,
128- IndicesAliasesResponse ::fromXContent , Collections . emptySet (), headers );
130+ IndicesAliasesResponse ::fromXContent , emptySet (), headers );
129131 }
130132
131133 /**
@@ -138,7 +140,7 @@ public IndicesAliasesResponse updateAliases(IndicesAliasesRequest indicesAliases
138140 public void updateAliasesAsync (IndicesAliasesRequest indicesAliasesRequestRequest , ActionListener <IndicesAliasesResponse > listener ,
139141 Header ... headers ) {
140142 restHighLevelClient .performRequestAsyncAndParseEntity (indicesAliasesRequestRequest , Request ::updateAliases ,
141- IndicesAliasesResponse ::fromXContent , listener , Collections . emptySet (), headers );
143+ IndicesAliasesResponse ::fromXContent , listener , emptySet (), headers );
142144 }
143145
144146 /**
@@ -149,7 +151,7 @@ public void updateAliasesAsync(IndicesAliasesRequest indicesAliasesRequestReques
149151 */
150152 public OpenIndexResponse open (OpenIndexRequest openIndexRequest , Header ... headers ) throws IOException {
151153 return restHighLevelClient .performRequestAndParseEntity (openIndexRequest , Request ::openIndex , OpenIndexResponse ::fromXContent ,
152- Collections . emptySet (), headers );
154+ emptySet (), headers );
153155 }
154156
155157 /**
@@ -160,7 +162,7 @@ public OpenIndexResponse open(OpenIndexRequest openIndexRequest, Header... heade
160162 */
161163 public void openAsync (OpenIndexRequest openIndexRequest , ActionListener <OpenIndexResponse > listener , Header ... headers ) {
162164 restHighLevelClient .performRequestAsyncAndParseEntity (openIndexRequest , Request ::openIndex , OpenIndexResponse ::fromXContent ,
163- listener , Collections . emptySet (), headers );
165+ listener , emptySet (), headers );
164166 }
165167
166168 /**
@@ -171,7 +173,7 @@ public void openAsync(OpenIndexRequest openIndexRequest, ActionListener<OpenInde
171173 */
172174 public CloseIndexResponse close (CloseIndexRequest closeIndexRequest , Header ... headers ) throws IOException {
173175 return restHighLevelClient .performRequestAndParseEntity (closeIndexRequest , Request ::closeIndex , CloseIndexResponse ::fromXContent ,
174- Collections . emptySet (), headers );
176+ emptySet (), headers );
175177 }
176178
177179 /**
@@ -182,6 +184,28 @@ public CloseIndexResponse close(CloseIndexRequest closeIndexRequest, Header... h
182184 */
183185 public void closeAsync (CloseIndexRequest closeIndexRequest , ActionListener <CloseIndexResponse > listener , Header ... headers ) {
184186 restHighLevelClient .performRequestAsyncAndParseEntity (closeIndexRequest , Request ::closeIndex , CloseIndexResponse ::fromXContent ,
185- listener , Collections .emptySet (), headers );
187+ listener , emptySet (), headers );
188+ }
189+
190+ /**
191+ * Checks if one or more aliases exist using the Aliases Exist API
192+ * <p>
193+ * See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html">
194+ * Indices Aliases API on elastic.co</a>
195+ */
196+ public boolean existsAlias (GetAliasesRequest getAliasesRequest , Header ... headers ) throws IOException {
197+ return restHighLevelClient .performRequest (getAliasesRequest , Request ::existsAlias , RestHighLevelClient ::convertExistsResponse ,
198+ emptySet (), headers );
199+ }
200+
201+ /**
202+ * Asynchronously checks if one or more aliases exist using the Aliases Exist API
203+ * <p>
204+ * See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html">
205+ * Indices Aliases API on elastic.co</a>
206+ */
207+ public void existsAliasAsync (GetAliasesRequest getAliasesRequest , ActionListener <Boolean > listener , Header ... headers ) {
208+ restHighLevelClient .performRequestAsync (getAliasesRequest , Request ::existsAlias , RestHighLevelClient ::convertExistsResponse ,
209+ listener , emptySet (), headers );
186210 }
187211}
0 commit comments