Skip to content

Commit 4b38873

Browse files
author
a-brandt
committed
fixed sonarlint issue
1 parent 2d12326 commit 4b38873

File tree

5 files changed

+109
-110
lines changed

5 files changed

+109
-110
lines changed

src/main/java/com/arangodb/BaseArangoDriver.java

Lines changed: 41 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,6 @@ public abstract class BaseArangoDriver {
4949

5050
private static final Pattern databaseNamePattern = Pattern.compile("^[a-zA-Z][a-zA-Z0-9\\-_]{0,63}$");
5151

52-
// protected String createDocumentHandle(long collectionId, long documentId)
53-
// {
54-
// // validateCollectionNameは不要
55-
// return collectionId + "/" + documentId;
56-
// }
57-
//
58-
// protected String createDocumentHandle(String collectionName, long
59-
// documentId) throws ArangoException {
60-
// validateCollectionName(collectionName);
61-
// return collectionName + "/" + documentId;
62-
// }
63-
6452
protected String createDocumentHandle(long collectionId, String documentKey) {
6553
return collectionId + "/" + documentKey;
6654
}
@@ -106,7 +94,7 @@ protected void validateDatabaseName(String database, boolean allowNull) throws A
10694
}
10795
} else {
10896
valid = databaseNamePattern.matcher(database).matches();
109-
if (database.equals("_system")) {
97+
if ("_system".equals(database)) {
11098
valid = true;
11199
}
112100
}
@@ -185,7 +173,7 @@ private int checkServerErrors(HttpResponseEntity res) throws ArangoException {
185173

186174
if (statusCode >= 400) { // always throws ArangoException
187175
DefaultEntity defaultEntity = new DefaultEntity();
188-
if (res.getText() != null && !res.getText().equalsIgnoreCase("") && statusCode != 500) {
176+
if (res.getText() != null && !"".equals(res.getText()) && statusCode != 500) {
189177
JsonParser jsonParser = new JsonParser();
190178
JsonElement jsonElement = jsonParser.parse(res.getText());
191179
JsonObject jsonObject = jsonElement.getAsJsonObject();
@@ -194,47 +182,7 @@ private int checkServerErrors(HttpResponseEntity res) throws ArangoException {
194182
JsonElement errorNumber = jsonObject.get("errorNum");
195183
defaultEntity.setErrorNumber(errorNumber.getAsInt());
196184
} else {
197-
String statusPhrase = "";
198-
switch (statusCode) {
199-
case 400:
200-
statusPhrase = "Bad Request";
201-
break;
202-
case 401:
203-
statusPhrase = "Unauthorized";
204-
break;
205-
case 403:
206-
statusPhrase = "Forbidden";
207-
break;
208-
case 404:
209-
statusPhrase = "Not Found";
210-
break;
211-
case 405:
212-
statusPhrase = "Method Not Allowed";
213-
break;
214-
case 406:
215-
statusPhrase = "Not Acceptable";
216-
break;
217-
case 407:
218-
statusPhrase = "Proxy Authentication Required";
219-
break;
220-
case 408:
221-
statusPhrase = "Request Time-out";
222-
break;
223-
case 409:
224-
statusPhrase = "Conflict";
225-
break;
226-
case 500:
227-
statusPhrase = "Internal Server Error";
228-
break;
229-
default:
230-
statusPhrase = "unknown error";
231-
break;
232-
}
233-
234-
defaultEntity.setErrorMessage(statusPhrase);
235-
if (statusCode == 500) {
236-
defaultEntity.setErrorMessage(statusPhrase + ": " + res.getText());
237-
}
185+
defaultEntity.setErrorMessage(res.createStatusPhrase());
238186
}
239187

240188
defaultEntity.setCode(statusCode);
@@ -271,7 +219,6 @@ protected <T extends BaseEntity> T createEntity(
271219
return null;
272220
}
273221
boolean isDocumentEntity = false;
274-
// boolean requestSuccessful = true;
275222

276223
// the following was added to ensure, that attributes with a key like
277224
// "error", "code", "errorNum"
@@ -286,17 +233,8 @@ protected <T extends BaseEntity> T createEntity(
286233
try {
287234
EntityDeserializers.setParameterized(pclazz);
288235

289-
T entity = createEntityImpl(res, clazz);
290-
if (entity == null) {
291-
Class<?> c = MissingInstanceCreater.getMissingClass(clazz);
292-
entity = ReflectionUtils.newInstance(c);
293-
} else if (res.isBatchRepsonse()) {
294-
try {
295-
entity = clazz.newInstance();
296-
} catch (Exception e) {
297-
throw new ArangoException(e);
298-
}
299-
}
236+
T entity = createEntityWithFallback(res, clazz);
237+
300238
setStatusCode(res, entity);
301239
if (validate) {
302240
validate(res, entity);
@@ -316,6 +254,22 @@ protected <T extends BaseEntity> T createEntity(
316254
}
317255
}
318256

257+
private <T extends BaseEntity> T createEntityWithFallback(HttpResponseEntity res, Class<T> clazz)
258+
throws ArangoException {
259+
T entity = createEntityImpl(res, clazz);
260+
if (entity == null) {
261+
Class<?> c = MissingInstanceCreater.getMissingClass(clazz);
262+
entity = ReflectionUtils.newInstance(c);
263+
} else if (res.isBatchRepsonse()) {
264+
try {
265+
entity = clazz.newInstance();
266+
} catch (Exception e) {
267+
throw new ArangoException(e);
268+
}
269+
}
270+
return entity;
271+
}
272+
319273
/**
320274
* Gets the raw JSON string with results, from the Http response
321275
*
@@ -371,57 +325,58 @@ protected void setStatusCode(HttpResponseEntity res, BaseEntity entity) throws A
371325

372326
protected void validate(HttpResponseEntity res, BaseEntity entity) throws ArangoException {
373327

374-
if (entity != null) {
375-
if (entity.isError()) {
376-
throw new ArangoException(entity);
377-
}
328+
if (entity != null && entity.isError()) {
329+
throw new ArangoException(entity);
378330
}
379331

380332
// Custom Error
381333
if (res.getStatusCode() >= 400) {
382334

335+
BaseEntity tmpEntity = entity;
336+
if (tmpEntity == null) {
337+
tmpEntity = new DefaultEntity();
338+
}
339+
383340
if (res.isTextResponse()) {
384-
// entity.setErrorNumber(0);
385-
entity.setErrorNumber(res.getStatusCode());
386-
entity.setErrorMessage(res.getText());
341+
tmpEntity.setErrorNumber(res.getStatusCode());
342+
tmpEntity.setErrorMessage(res.getText());
387343
} else {
388-
entity.setErrorNumber(res.getStatusCode());
389-
entity.setErrorMessage(res.getStatusPhrase());
344+
tmpEntity.setErrorNumber(res.getStatusCode());
345+
tmpEntity.setErrorMessage(res.getStatusPhrase());
390346
}
391347

392348
switch (res.getStatusCode()) {
393349
case 401:
394-
entity.setErrorMessage("Unauthorized");
350+
tmpEntity.setErrorMessage("Unauthorized");
395351
break;
396352
case 403:
397-
entity.setErrorMessage("Forbidden");
353+
tmpEntity.setErrorMessage("Forbidden");
398354
break;
399355
default:
400356
}
401357

402-
throw new ArangoException(entity);
358+
throw new ArangoException(tmpEntity);
403359
}
404360
}
405361

406362
@SuppressWarnings("unchecked")
407363
protected <T> T createEntityImpl(HttpResponseEntity res, Class<T> type) throws ArangoException {
364+
T result = null;
408365
if (res.isJsonResponse()) {
409366
try {
410-
return EntityFactory.createEntity(res.getText(), type);
367+
result = EntityFactory.createEntity(res.getText(), type);
411368
} catch (JsonSyntaxException e) {
412369
throw new ArangoException("got JsonSyntaxException while creating entity", e);
413370
} catch (JsonParseException e) {
414371
throw new ArangoException("got JsonParseException while creating entity", e);
415372
}
416-
}
417-
if (res.isDumpResponse() && StreamEntity.class.isAssignableFrom(type)) {
418-
return (T) new StreamEntity(res.getStream());
419-
}
420-
if (res.getText() != null && res.getText().length() > 0) {
373+
} else if (res.isDumpResponse() && StreamEntity.class.isAssignableFrom(type)) {
374+
result = (T) new StreamEntity(res.getStream());
375+
} else if (StringUtils.isNotEmpty(res.getText())) {
421376
throw new ArangoException("expected JSON result from server but got: " + res.getText());
422377
}
423378

424-
return null;
379+
return result;
425380
}
426381

427382
protected String createEndpointUrl(String database, Object... paths) throws ArangoException {

src/main/java/com/arangodb/http/HttpResponseEntity.java

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class HttpResponseEntity {
4242
* @since 1.4.0
4343
*/
4444
public boolean isJsonResponse() {
45-
return (contentType != null && contentType.startsWith("application/json"));
45+
return contentType != null && contentType.startsWith("application/json");
4646
}
4747

4848
/**
@@ -52,7 +52,7 @@ public boolean isJsonResponse() {
5252
* @since 1.4.0
5353
*/
5454
public boolean isDumpResponse() {
55-
return (contentType != null && contentType.startsWith("application/x-arango-dump"));
55+
return contentType != null && contentType.startsWith("application/x-arango-dump");
5656
}
5757

5858
/**
@@ -62,11 +62,11 @@ public boolean isDumpResponse() {
6262
* @since 1.4.0
6363
*/
6464
public boolean isTextResponse() {
65-
return (contentType != null && contentType.startsWith("text/plain"));
65+
return contentType != null && contentType.startsWith("text/plain");
6666
}
6767

6868
public boolean isBatchRepsonse() {
69-
return (requestId != null);
69+
return requestId != null;
7070
}
7171

7272
public int getStatusCode() {
@@ -132,4 +132,49 @@ public String getRequestId() {
132132
public void setRequestId(String requestId) {
133133
this.requestId = requestId;
134134
}
135+
136+
public String createStatusPhrase() {
137+
String result;
138+
switch (statusCode) {
139+
case 400:
140+
result = "Bad Request";
141+
break;
142+
case 401:
143+
result = "Unauthorized";
144+
break;
145+
case 403:
146+
result = "Forbidden";
147+
break;
148+
case 404:
149+
result = "Not Found";
150+
break;
151+
case 405:
152+
result = "Method Not Allowed";
153+
break;
154+
case 406:
155+
result = "Not Acceptable";
156+
break;
157+
case 407:
158+
result = "Proxy Authentication Required";
159+
break;
160+
case 408:
161+
result = "Request Time-out";
162+
break;
163+
case 409:
164+
result = "Conflict";
165+
break;
166+
case 500:
167+
result = "Internal Server Error";
168+
break;
169+
default:
170+
result = "unknown error";
171+
break;
172+
}
173+
174+
if (statusCode == 500) {
175+
return result + ": " + getText();
176+
}
177+
178+
return result;
179+
}
135180
}

src/main/java/com/arangodb/impl/InternalEndpointDriverImpl.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
*/
3737
public class InternalEndpointDriverImpl extends BaseArangoDriverImpl implements com.arangodb.InternalEndpointDriver {
3838

39+
private static final String API_ENDPOINT = "/_api/endpoint";
40+
3941
InternalEndpointDriverImpl(ArangoConfigure configure, HttpManager httpManager) {
4042
super(configure, httpManager);
4143
}
@@ -52,7 +54,7 @@ public BooleanResultEntity createEndpoint(String endpoint, String... databases)
5254
}
5355
}
5456

55-
HttpResponseEntity res = httpManager.doPost(createEndpointUrl(null, "/_api/endpoint"), null,
57+
HttpResponseEntity res = httpManager.doPost(createEndpointUrl(null, API_ENDPOINT), null,
5658
EntityFactory.toJsonString(new MapBuilder().put("endpoint", endpoint).put("databases", databases).get()));
5759

5860
return createEntity(res, BooleanResultEntity.class);
@@ -64,7 +66,7 @@ public List<Endpoint> getEndpoints() throws ArangoException {
6466

6567
Type type = new TypeToken<List<Endpoint>>() {
6668
}.getType();
67-
HttpResponseEntity res = httpManager.doGet(createEndpointUrl(null, "/_api/endpoint"));
69+
HttpResponseEntity res = httpManager.doGet(createEndpointUrl(null, API_ENDPOINT));
6870

6971
// because it is not include common-attribute.
7072
return EntityFactory.createEntity(res.getText(), type);
@@ -77,7 +79,7 @@ public BooleanResultEntity deleteEndpoint(String endpoint) throws ArangoExceptio
7779
// TODO: validate endpoint
7880

7981
HttpResponseEntity res = httpManager.doDelete(
80-
createEndpointUrl(null, "/_api/endpoint", StringUtils.encodeUrl(endpoint)), null);
82+
createEndpointUrl(null, API_ENDPOINT, StringUtils.encodeUrl(endpoint)), null);
8183

8284
return createEntity(res, BooleanResultEntity.class);
8385

src/main/java/com/arangodb/impl/InternalImportDriverImpl.java

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828

2929
/**
3030
* @author tamtam180 - kirscheless at gmail.com
31-
* @see <a
32-
* href="https://docs.arangodb.com/HttpBulkImports/ImportingSelfContained.html">HttpBulkImports
33-
* documentation</a>
31+
* @see <a href=
32+
* "https://docs.arangodb.com/HttpBulkImports/ImportingSelfContained.html">
33+
* HttpBulkImports documentation</a>
3434
*/
3535
public class InternalImportDriverImpl extends BaseArangoDriverImpl implements com.arangodb.InternalImportDriver {
3636

@@ -46,25 +46,14 @@ public ImportResultEntity importDocuments(
4646
Collection<?> values) throws ArangoException {
4747

4848
HttpResponseEntity res = httpManager.doPost(
49-
createEndpointUrl(database, "/_api/import"),
50-
new MapBuilder().put("collection", collection).put("createCollection", createCollection)
51-
.put("type", "array").get(), EntityFactory.toJsonString(values));
49+
createEndpointUrl(database, "/_api/import"), new MapBuilder().put("collection", collection)
50+
.put("createCollection", createCollection).put("type", "array").get(),
51+
EntityFactory.toJsonString(values));
5252

5353
return createEntity(res, ImportResultEntity.class);
5454

5555
}
5656

57-
// public void importDocuments(String collection, Boolean createCollection,
58-
// Iterator<?> itr) throws ArangoException {
59-
//
60-
// HttpResponseEntity res = httpManager.doPost(
61-
// baseUrl + "/_api/import",
62-
// new MapBuilder().put("collection", collection).put("createCollection",
63-
// createCollection).put("type", "documents").get(),
64-
// EntityFactory.toJsonSequenceEntity(itr));
65-
//
66-
// }
67-
6857
@Override
6958
public ImportResultEntity importDocumentsByHeaderValues(
7059
String database,

src/main/java/com/arangodb/util/StringUtils.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ public static String encodeUrl(String text) {
4747
return null;
4848
}
4949

50+
public static boolean isNotEmpty(String str) {
51+
return str != null && str.length() > 0;
52+
}
53+
54+
public static boolean isEmpty(String str) {
55+
return str == null || str.length() == 0;
56+
}
57+
5058
public static boolean isCurlyBracketStart(String text) {
5159

5260
if (text == null || "".equals(text)) {

0 commit comments

Comments
 (0)