Skip to content

Commit 1e13d86

Browse files
committed
async API: typed analyzers
1 parent c21df20 commit 1e13d86

File tree

4 files changed

+262
-2
lines changed

4 files changed

+262
-2
lines changed

src/main/java/com/arangodb/async/ArangoDatabaseAsync.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.arangodb.ArangoSerializationAccessor;
2525
import com.arangodb.entity.*;
2626
import com.arangodb.entity.arangosearch.AnalyzerEntity;
27+
import com.arangodb.entity.arangosearch.analyzer.SearchAnalyzer;
2728
import com.arangodb.model.*;
2829
import com.arangodb.model.arangosearch.AnalyzerDeleteOptions;
2930
import com.arangodb.model.arangosearch.ArangoSearchCreateOptions;
@@ -704,34 +705,70 @@ <T> CompletableFuture<T> getDocument(final String id, final Class<T> type, final
704705
* @return the created Analyzer
705706
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
706707
* @since ArangoDB 3.5.0
708+
* @deprecated use {@link this#createSearchAnalyzer(SearchAnalyzer)}}
707709
*/
708710
CompletableFuture<AnalyzerEntity> createAnalyzer(AnalyzerEntity options);
709711

712+
/**
713+
* Creates an Analyzer
714+
*
715+
* @param analyzer SearchAnalyzer
716+
* @return the created Analyzer
717+
* @throws ArangoDBException
718+
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
719+
* @since ArangoDB 3.5.0
720+
*/
721+
CompletableFuture<SearchAnalyzer> createSearchAnalyzer(SearchAnalyzer analyzer);
722+
710723
/**
711724
* Gets information about an Analyzer
712725
*
713726
* @param name of the Analyzer without database prefix
714727
* @return information about an Analyzer
715728
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
716729
* @since ArangoDB 3.5.0
730+
* @deprecated use {@link this#getSearchAnalyzer(String)}}
717731
*/
718732
CompletableFuture<AnalyzerEntity> getAnalyzer(String name);
719733

734+
/**
735+
* Gets information about an Analyzer
736+
*
737+
* @param name of the Analyzer without database prefix
738+
* @return information about an Analyzer
739+
* @throws ArangoDBException
740+
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
741+
* @since ArangoDB 3.5.0
742+
*/
743+
CompletableFuture<SearchAnalyzer> getSearchAnalyzer(String name);
744+
720745
/**
721746
* Retrieves all analyzers definitions.
722747
*
723748
* @return collection of all analyzers definitions
724749
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
725750
* @since ArangoDB 3.5.0
751+
* @deprecated use {@link this#getSearchAnalyzers()}
726752
*/
727753
CompletableFuture<Collection<AnalyzerEntity>> getAnalyzers();
728754

755+
/**
756+
* Retrieves all analyzers definitions.
757+
*
758+
* @return collection of all analyzers definitions
759+
* @throws ArangoDBException
760+
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
761+
* @since ArangoDB 3.5.0
762+
*/
763+
CompletableFuture<Collection<SearchAnalyzer>> getSearchAnalyzers();
764+
729765
/**
730766
* Deletes an Analyzer
731767
*
732768
* @param name of the Analyzer without database prefix
733769
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
734770
* @since ArangoDB 3.5.0
771+
* @deprecated use {@link this#deleteSearchAnalyzer(String)}}}
735772
*/
736773
CompletableFuture<Void> deleteAnalyzer(String name);
737774

@@ -742,7 +779,29 @@ <T> CompletableFuture<T> getDocument(final String id, final Class<T> type, final
742779
* @param options AnalyzerDeleteOptions
743780
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
744781
* @since ArangoDB 3.5.0
782+
* @deprecated use {@link this#deleteSearchAnalyzer(String, AnalyzerDeleteOptions)}}}
745783
*/
746784
CompletableFuture<Void> deleteAnalyzer(String name, AnalyzerDeleteOptions options);
747785

786+
/**
787+
* Deletes an Analyzer
788+
*
789+
* @param name of the Analyzer without database prefix
790+
* @throws ArangoDBException
791+
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
792+
* @since ArangoDB 3.5.0
793+
*/
794+
CompletableFuture<Void> deleteSearchAnalyzer(String name);
795+
796+
/**
797+
* Deletes an Analyzer
798+
*
799+
* @param name of the Analyzer without database prefix
800+
* @param options AnalyzerDeleteOptions
801+
* @throws ArangoDBException
802+
* @see <a href="https://www.arangodb.com/docs/stable/http/analyzers.html">API Documentation</a>
803+
* @since ArangoDB 3.5.0
804+
*/
805+
CompletableFuture<Void> deleteSearchAnalyzer(String name, AnalyzerDeleteOptions options);
806+
748807
}

src/main/java/com/arangodb/async/internal/ArangoDatabaseAsyncImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.arangodb.async.*;
2525
import com.arangodb.entity.*;
2626
import com.arangodb.entity.arangosearch.AnalyzerEntity;
27+
import com.arangodb.entity.arangosearch.analyzer.SearchAnalyzer;
2728
import com.arangodb.internal.ArangoCursorExecute;
2829
import com.arangodb.internal.InternalArangoDatabase;
2930
import com.arangodb.internal.net.HostHandle;
@@ -431,16 +432,31 @@ public CompletableFuture<AnalyzerEntity> createAnalyzer(AnalyzerEntity options)
431432
return executor.execute(createAnalyzerRequest(options), AnalyzerEntity.class);
432433
}
433434

435+
@Override
436+
public CompletableFuture<SearchAnalyzer> createSearchAnalyzer(SearchAnalyzer analyzer) {
437+
return executor.execute(createAnalyzerRequest(analyzer), SearchAnalyzer.class);
438+
}
439+
434440
@Override
435441
public CompletableFuture<AnalyzerEntity> getAnalyzer(String name) {
436442
return executor.execute(getAnalyzerRequest(name), AnalyzerEntity.class);
437443
}
438444

445+
@Override
446+
public CompletableFuture<SearchAnalyzer> getSearchAnalyzer(String name) {
447+
return executor.execute(getAnalyzerRequest(name), SearchAnalyzer.class);
448+
}
449+
439450
@Override
440451
public CompletableFuture<Collection<AnalyzerEntity>> getAnalyzers() {
441452
return executor.execute(getAnalyzersRequest(), getAnalyzersResponseDeserializer());
442453
}
443454

455+
@Override
456+
public CompletableFuture<Collection<SearchAnalyzer>> getSearchAnalyzers() {
457+
return executor.execute(getAnalyzersRequest(), getSearchAnalyzersResponseDeserializer());
458+
}
459+
444460
@Override
445461
public CompletableFuture<Void> deleteAnalyzer(String name) {
446462
return executor.execute(deleteAnalyzerRequest(name, null), Void.class);
@@ -451,5 +467,15 @@ public CompletableFuture<Void> deleteAnalyzer(String name, AnalyzerDeleteOptions
451467
return executor.execute(deleteAnalyzerRequest(name, options), Void.class);
452468
}
453469

470+
@Override
471+
public CompletableFuture<Void> deleteSearchAnalyzer(String name) {
472+
return deleteAnalyzer(name);
473+
}
474+
475+
@Override
476+
public CompletableFuture<Void> deleteSearchAnalyzer(String name, AnalyzerDeleteOptions options) {
477+
return deleteAnalyzer(name, options);
478+
}
479+
454480

455481
}

src/test/java/com/arangodb/ArangoSearchTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,8 @@ private void createGetAndDeleteTypedAnalyzer(SearchAnalyzer analyzer) {
304304
db.getAnalyzer(analyzer.getName());
305305
fail("deleted analyzer should not be found!");
306306
} catch (ArangoDBException e) {
307-
// ok
307+
assertThat(e.getResponseCode(), is(404));
308+
assertThat(e.getErrorNum(), is(1202));
308309
}
309310

310311
}

0 commit comments

Comments
 (0)