2222
2323import com .arangodb .ArangoConfigure ;
2424import com .arangodb .ArangoException ;
25+ import com .arangodb .entity .BaseDocument ;
2526import com .arangodb .entity .DefaultEntity ;
2627import com .arangodb .entity .DocumentEntity ;
2728import com .arangodb .entity .DocumentsEntity ;
@@ -60,20 +61,24 @@ private <T> DocumentEntity<T> _createDocument(
6061 } else if (documentKey != null ) {
6162 JsonElement elem = EntityFactory .toJsonElement (value , false );
6263 if (elem .isJsonObject ()) {
63- elem .getAsJsonObject ().addProperty ("_key" , documentKey );
64+ elem .getAsJsonObject ().addProperty (BaseDocument . KEY , documentKey );
6465 }
6566 body = EntityFactory .toJsonString (elem );
6667 } else {
6768 body = EntityFactory .toJsonString (value );
6869 }
6970
70- HttpResponseEntity res = httpManager .doPost (
71- createEndpointUrl (database , "/_api/document" ),
71+ HttpResponseEntity res = httpManager .doPost (createEndpointUrl (database , "/_api/document" ),
7272 new MapBuilder ().put ("collection" , collectionName ).put ("createCollection" , createCollection )
73- .put ("waitForSync" , waitForSync ).get (), body );
73+ .put ("waitForSync" , waitForSync ).get (),
74+ body );
7475
7576 @ SuppressWarnings ("unchecked" )
7677 DocumentEntity <T > result = createEntity (res , DocumentEntity .class );
78+
79+ annotationHandler .updateDocumentAttributes (value , result .getDocumentRevision (), result .getDocumentHandle (),
80+ result .getDocumentKey ());
81+
7782 result .setEntity (value );
7883 return result ;
7984 }
@@ -113,12 +118,14 @@ public <T> DocumentEntity<T> replaceDocument(
113118
114119 validateDocumentHandle (documentHandle );
115120 HttpResponseEntity res = httpManager .doPut (
116- createEndpointUrl (database , "/_api/document" , documentHandle ),
117- new MapBuilder ().put ("rev" , rev ).put ("policy" , policy == null ? null : policy .name ())
118- .put ("waitForSync" , waitForSync ).get (), EntityFactory .toJsonString (value ));
119-
120- return createEntity (res , DocumentEntity .class );
121+ createEndpointUrl (database , "/_api/document" , documentHandle ), new MapBuilder ().put ("rev" , rev )
122+ .put ("policy" , policy == null ? null : policy .name ()).put ("waitForSync" , waitForSync ).get (),
123+ EntityFactory .toJsonString (value ));
121124
125+ DocumentEntity <T > result = createEntity (res , DocumentEntity .class );
126+ annotationHandler .updateDocumentRev (value , result .getDocumentRevision ());
127+ result .setEntity (value );
128+ return result ;
122129 }
123130
124131 @ Override
@@ -132,16 +139,17 @@ public <T> DocumentEntity<T> updateDocument(
132139 Boolean keepNull ) throws ArangoException {
133140
134141 validateDocumentHandle (documentHandle );
135- HttpResponseEntity res = httpManager .doPatch (
136- createEndpointUrl (database , "/_api/document" , documentHandle ),
142+ HttpResponseEntity res = httpManager .doPatch (createEndpointUrl (database , "/_api/document" , documentHandle ),
137143 new MapBuilder ().put ("rev" , rev ).put ("policy" , policy == null ? null : policy .name ())
138144 .put ("waitForSync" , waitForSync ).put ("keepNull" , keepNull ).get (),
139145 EntityFactory .toJsonString (value , keepNull != null && !keepNull ));
140146
141147 @ SuppressWarnings ("unchecked" )
142- DocumentEntity <T > entity = createEntity (res , DocumentEntity .class );
143- return entity ;
144-
148+ DocumentEntity <T > result = createEntity (res , DocumentEntity .class );
149+ annotationHandler .updateDocumentAttributes (value , result .getDocumentRevision (), result .getDocumentHandle (),
150+ result .getDocumentKey ());
151+ result .setEntity (value );
152+ return result ;
145153 }
146154
147155 private static final String API_DOCUMENT_PREFIX = "/_api/document/" ;
@@ -150,8 +158,8 @@ public <T> DocumentEntity<T> updateDocument(
150158 public List <String > getDocuments (String database , String collectionName , boolean handleConvert )
151159 throws ArangoException {
152160
153- HttpResponseEntity res = httpManager .doGet (createEndpointUrl (database , "/_api/document" ), new MapBuilder (
154- "collection" , collectionName ).get ());
161+ HttpResponseEntity res = httpManager .doGet (createEndpointUrl (database , "/_api/document" ),
162+ new MapBuilder ( "collection" , collectionName ).get ());
155163
156164 DocumentsEntity entity = createEntity (res , DocumentsEntity .class );
157165 List <String > documents = CollectionUtils .safety (entity .getDocuments ());
@@ -171,8 +179,8 @@ public List<String> getDocuments(String database, String collectionName, boolean
171179 @ Override
172180 public long checkDocument (String database , String documentHandle ) throws ArangoException {
173181 validateDocumentHandle (documentHandle );
174- HttpResponseEntity res = httpManager
175- . doHead ( createEndpointUrl ( database , "/_api/document" , documentHandle ), null );
182+ HttpResponseEntity res = httpManager . doHead ( createEndpointUrl ( database , "/_api/document" , documentHandle ),
183+ null );
176184
177185 DefaultEntity entity = createEntity (res , DefaultEntity .class );
178186 return entity .getEtag ();
@@ -205,8 +213,8 @@ public DocumentEntity<?> deleteDocument(String database, String documentHandle,
205213
206214 validateDocumentHandle (documentHandle );
207215 HttpResponseEntity res = httpManager .doDelete (createEndpointUrl (database , "/_api/document" , documentHandle ),
208- new MapBuilder ().put ("rev" , rev )
209- .put ( "policy" , policy == null ? null : policy . name (). toLowerCase ( Locale . US )). get ());
216+ new MapBuilder ().put ("rev" , rev ). put ( "policy" , policy == null ? null : policy . name (). toLowerCase ( Locale . US ))
217+ .get ());
210218
211219 try {
212220 DocumentEntity <?> entity = createEntity (res , DocumentEntity .class );
0 commit comments