Skip to content

Commit

Permalink
Improved functionalities
Browse files Browse the repository at this point in the history
  • Loading branch information
Roberto-Gentili committed Oct 25, 2023
1 parent b1ebacb commit ae3999a
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 10 deletions.
33 changes: 32 additions & 1 deletion src/main/java/org/burningwave/json/Facade.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@
*/
package org.burningwave.json;

import java.io.File;
import java.io.InputStream;
import java.io.Reader;
import java.net.URL;

import org.burningwave.Executor;

import com.fasterxml.jackson.databind.ObjectMapper;

public class Facade {
Expand Down Expand Up @@ -57,13 +64,37 @@ public static Facade create(ObjectMapper objectMapper) {
}

public ObjectMapper objectMapper() {
return this.objectMapper;
return objectMapper;
}

public ObjectHandler newObjectHandler(Object jsonObject) {
return ObjectHandler.create(objectMapper, jsonObject);
}

public <T> ObjectHandler newObjectHandler(byte[] src, Class<T> type) {
return Executor.get(() -> ObjectHandler.create(objectMapper, objectMapper.readValue(src, type)));
}

public <T> ObjectHandler newObjectHandler(File src, Class<T> type) {
return Executor.get(() -> ObjectHandler.create(objectMapper, objectMapper.readValue(src, type)));
}

public <T> ObjectHandler newObjectHandler(InputStream src, Class<T> type) {
return Executor.get(() -> ObjectHandler.create(objectMapper, objectMapper.readValue(src, type)));
}

public <T> ObjectHandler newObjectHandler(Reader src, Class<T> type) {
return Executor.get(() -> ObjectHandler.create(objectMapper, objectMapper.readValue(src, type)));
}

public <T> ObjectHandler newObjectHandler(String src, Class<T> type) {
return Executor.get(() -> ObjectHandler.create(objectMapper, objectMapper.readValue(src, type)));
}

public <T> ObjectHandler newObjectHandler(URL src, Class<T> type) {
return Executor.get(() -> ObjectHandler.create(objectMapper, objectMapper.readValue(src, type)));
}

public Validator validator() {
return this.validator;
}
Expand Down
9 changes: 3 additions & 6 deletions src/test/java/org/burningwave/json/ObjectHandlerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,10 @@ class ObjectHandlerTest extends BaseTest {
void findFirstTestOne() {
testNotNull(() -> {
//Loading the JSON object
Root jsonObject = facade.objectMapper().readValue(
ObjectHandler objectHandler = facade.newObjectHandler(
ObjectHandlerTest.class.getClassLoader().getResourceAsStream("quiz.json"),
Root.class
);
ObjectHandler objectHandler = facade.newObjectHandler(jsonObject);

ObjectHandler.Finder finder = objectHandler.newFinder();
ObjectHandler sportOH = finder.findFirstForPathEndsWith("sport");
Expand All @@ -44,11 +43,10 @@ void findFirstTestOne() {
void findFirstValueTestOne() {
testNotNull(() -> {
//Loading the JSON object
Root jsonObject = facade.objectMapper().readValue(
ObjectHandler objectHandler = facade.newObjectHandler(
ObjectHandlerTest.class.getClassLoader().getResourceAsStream("quiz.json"),
Root.class
);
ObjectHandler objectHandler = facade.newObjectHandler(jsonObject);

ObjectHandler.ValueFinder finder = objectHandler.newValueFinder();
Sport sport = finder.findFirstForPathEndsWith("sport");
Expand All @@ -62,11 +60,10 @@ void findFirstValueTestOne() {
void findFirstValueAndConvertItTestOne() {
testNotNull(() -> {
//Loading the JSON object
Root jsonObject = facade.objectMapper().readValue(
ObjectHandler objectHandler = facade.newObjectHandler(
ObjectHandlerTest.class.getClassLoader().getResourceAsStream("quiz.json"),
Root.class
);
ObjectHandler objectHandler = facade.newObjectHandler(jsonObject);

ObjectHandler.ValueFinderAndConverter finderAndConverter = objectHandler.newValueFinderAndConverter(Map.class);
Map<String, Object> sportAsMap = finderAndConverter.findFirstForPathEndsWith("sport");
Expand Down
6 changes: 3 additions & 3 deletions src/test/java/org/burningwave/json/ValidatorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ void validateTestOne() {
);

//Loading the JSON object
Root jsonObject = facade.objectMapper().readValue(
ObjectHandlerTest.class.getClassLoader().getResourceAsStream("quiz-to-be-validated.json"),
ObjectHandler objectHandler = facade.newObjectHandler(
ObjectHandlerTest.class.getClassLoader().getResourceAsStream("quiz.json"),
Root.class
);
Collection<Throwable> exceptions = facade.validator().validate(
Validation.Config.forJsonObject(jsonObject)
Validation.Config.forJsonObject(objectHandler.getValue())
//By calling this method the validation will be performed on the entire document,
//otherwise the validation will stop at the first exception thrown
.withCompleteValidation()
Expand Down

0 comments on commit ae3999a

Please sign in to comment.