Example usage for com.fasterxml.jackson.databind ObjectMapper getTypeFactory

List of usage examples for com.fasterxml.jackson.databind ObjectMapper getTypeFactory

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind ObjectMapper getTypeFactory.

Prototype

public TypeFactory getTypeFactory() 

Source Link

Document

Accessor for getting currently configured TypeFactory instance.

Usage

From source file:org.saiku.web.rest.resources.QueryResource.java

@PUT
@Consumes("application/x-www-form-urlencoded")
@Path("/{queryname}/zoomin")
public SaikuQuery zoomIn(@PathParam("queryname") String queryName,
        @FormParam("selections") String positionListString) {
    try {//from  w w w  .  ja v  a  2s  . c om

        if (log.isDebugEnabled()) {
            log.debug("TRACK\t" + "\t/query/" + queryName + "/zoomIn\tPUT");
        }
        List<List<Integer>> realPositions = new ArrayList<>();
        if (StringUtils.isNotBlank(positionListString)) {
            ObjectMapper mapper = new ObjectMapper();
            String[] positions = mapper.readValue(positionListString,
                    mapper.getTypeFactory().constructArrayType(String.class));
            if (positions != null && positions.length > 0) {
                for (String position : positions) {
                    String[] rPos = position.split(":");
                    List<Integer> cellPosition = new ArrayList<>();

                    for (String p : rPos) {
                        Integer pInt = Integer.parseInt(p);
                        cellPosition.add(pInt);
                    }
                    realPositions.add(cellPosition);
                }
            }
        }
        IQuery query = olapQueryService.zoomIn(queryName, realPositions);
        return ObjectUtil.convert(query);

    } catch (Exception e) {
        log.error("Cannot updates selections for query (" + queryName + ")", e);
        throw new WebApplicationException(e);
    }
}

From source file:org.saiku.web.rest.resources.QueryResource.java

@DELETE
@Consumes("application/x-www-form-urlencoded")
@Path("/{queryname}/axis/{axis}/dimension/{dimension}/member/")
public Response removeMembers(@PathParam("queryname") String queryName, @PathParam("axis") String axisName,
        @PathParam("dimension") String dimensionName, MultivaluedMap<String, String> formParams) {
    try {/*from  ww w.  j  a  v  a2  s  .co m*/
        if (log.isDebugEnabled()) {
            log.debug("TRACK\t" + "\t/query/" + queryName + "/axis/" + axisName + "/dimension/" + dimensionName
                    + "\tPUT");
        }
        if (formParams.containsKey("selections")) {
            LinkedList<String> sels = (LinkedList<String>) formParams.get("selections");
            String selectionJSON = (String) sels.getFirst();
            ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
            List<SelectionRestObject> selections = mapper.readValue(selectionJSON, mapper.getTypeFactory()
                    .constructCollectionType(ArrayList.class, SelectionRestObject.class));
            for (SelectionRestObject member : selections) {
                removeMember("MEMBER", queryName, axisName, dimensionName, member.getUniquename());
            }
            return Response.ok().build();
        }
        throw new Exception("Form did not contain 'selections' parameter");
    } catch (Exception e) {
        log.error("Cannot updates selections for query (" + queryName + ")", e);
        return Response.serverError().entity(e.getMessage()).status(Status.INTERNAL_SERVER_ERROR).build();
    }
}

From source file:org.saiku.web.rest.resources.QueryResource.java

@PUT
@Consumes("application/x-www-form-urlencoded")
@Path("/{queryname}/axis/{axis}/dimension/{dimension}/")
public Response updateSelections(@PathParam("queryname") String queryName, @PathParam("axis") String axisName,
        @PathParam("dimension") String dimensionName, @FormParam("selections") String selectionJSON) {
    try {/*from  ww  w  .j av  a 2  s. co  m*/
        if (log.isDebugEnabled()) {
            log.debug("TRACK\t" + "\t/query/" + queryName + "/axis/" + axisName + "/dimension/" + dimensionName
                    + "\tPUT\t");
        }

        if (selectionJSON != null) {
            ObjectMapper mapper = new ObjectMapper();
            List<SelectionRestObject> selections = mapper.readValue(selectionJSON, mapper.getTypeFactory()
                    .constructCollectionType(ArrayList.class, SelectionRestObject.class));

            // remove stuff first, then add, removing removes all selections for that level first
            for (SelectionRestObject selection : selections) {
                if (selection.getType() != null && "member".equals(selection.getType().toLowerCase())) {
                    if (selection.getAction() != null && "delete".equals(selection.getAction().toLowerCase())) {
                        olapQueryService.removeMember(queryName, dimensionName, selection.getUniquename(),
                                "MEMBER");
                    }
                }
                if (selection.getType() != null && "level".equals(selection.getType().toLowerCase())) {
                    if (selection.getAction() != null && "delete".equals(selection.getAction().toLowerCase())) {
                        olapQueryService.removeLevel(queryName, dimensionName, selection.getHierarchy(),
                                selection.getUniquename());
                    }
                }
            }
            for (SelectionRestObject selection : selections) {
                if (selection.getType() != null && "member".equals(selection.getType().toLowerCase())) {
                    if (selection.getAction() != null && "add".equals(selection.getAction().toLowerCase())) {
                        olapQueryService.includeMember(queryName, dimensionName, selection.getUniquename(),
                                "MEMBER", selection.getTotalsFunction(), -1);
                    }
                }
                if (selection.getType() != null && "level".equals(selection.getType().toLowerCase())) {
                    if (selection.getAction() != null && "add".equals(selection.getAction().toLowerCase())) {
                        olapQueryService.includeLevel(queryName, dimensionName, selection.getHierarchy(),
                                selection.getUniquename(), selection.getTotalsFunction());
                    }
                }
            }
            SaikuDimensionSelection dimsels = getAxisDimensionInfo(queryName, axisName, dimensionName);
            if (dimsels != null && dimsels.getSelections().size() == 0) {
                moveDimension(queryName, "UNUSED", dimensionName, -1);
            }
            return Response.ok().build();
        }
        throw new Exception("Form did not contain 'selections' parameter");
    } catch (Exception e) {
        log.error("Cannot updates selections for query (" + queryName + ")", e);
        return Response.serverError().entity(e.getMessage()).status(Status.INTERNAL_SERVER_ERROR).build();
    }

}

From source file:org.wso2.emm.agent.services.operation.OperationManager.java

/**
 * Monitor currently enforced policy for compliance.
 *
 * @param operation - Operation object.//from   w  w  w .j  av a 2 s.  c o  m
 */
public void monitorPolicy(org.wso2.emm.agent.beans.Operation operation) throws AndroidAgentException {
    if (Constants.DEBUG_MODE_ENABLED) {
        Log.d(TAG, "monitorPolicy started.");
    }
    String payload = Preference.getString(context, Constants.PreferenceFlag.APPLIED_POLICY);
    PolicyOperationsMapper operationsMapper = new PolicyOperationsMapper();
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

    PolicyComplianceChecker policyChecker = new PolicyComplianceChecker(context);
    ArrayList<ComplianceFeature> result = new ArrayList<>();

    try {
        if (payload != null) {
            List<org.wso2.emm.agent.beans.Operation> operations = mapper.readValue(payload,
                    mapper.getTypeFactory().constructCollectionType(List.class,
                            org.wso2.emm.agent.beans.Operation.class));
            for (org.wso2.emm.agent.beans.Operation op : operations) {
                op = operationsMapper.getOperation(op);
                result.add(policyChecker.checkPolicyState(op));
            }
            operation.setStatus(resources.getString(R.string.operation_value_completed));
            operation.setPayLoad(mapper.writeValueAsString(result));
            resultBuilder.build(operation);
        }
    } catch (IOException e) {
        operation.setStatus(resources.getString(R.string.operation_value_error));
        operation.setOperationResponse("Error in parsing policy monitor payload stream.");
        resultBuilder.build(operation);
        throw new AndroidAgentException("Error occurred while parsing stream.", e);
    }
    if (Constants.DEBUG_MODE_ENABLED) {
        Log.d(TAG, "monitorPolicy completed.");
    }
}

From source file:com.dell.asm.asmcore.asmmanager.util.ServiceTemplateUtil.java

private static ObjectMapper buildBackendObjectMapper() {
    ObjectMapper mapper = new ObjectMapper();
    AnnotationIntrospector ai = new JaxbAnnotationIntrospector(mapper.getTypeFactory());
    mapper.setAnnotationIntrospector(ai);
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    return mapper;
}

From source file:capital.scalable.restdocs.jackson.FieldDocumentationGeneratorTest.java

@Test
public void testGenerateDocumentationForComposedTypes() throws Exception {
    // given//from  www.j  a v a  2 s  . com
    ObjectMapper mapper = createMapper();
    JavadocReader javadocReader = mock(JavadocReader.class);
    when(javadocReader.resolveFieldComment(ComposedTypes.class, "objectField")).thenReturn("An object");
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "stringField")).thenReturn("A string");
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "booleanField")).thenReturn("A boolean");
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "numberField1")).thenReturn("An integer");
    when(javadocReader.resolveFieldComment(PrimitiveTypes.class, "numberField2")).thenReturn("A decimal");
    when(javadocReader.resolveFieldComment(ComposedTypes.class, "arrayField")).thenReturn("An array");

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), javadocReader,
            constraintReader);
    Type type = ComposedTypes.class;

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));
    // then
    assertThat(fieldDescriptions.size(), is(10));
    assertThat(fieldDescriptions.get(0), is(descriptor("objectField", "Object", "An object", "true")));
    assertThat(fieldDescriptions.get(1),
            is(descriptor("objectField.stringField", "String", "A string", "true")));
    assertThat(fieldDescriptions.get(2),
            is(descriptor("objectField.booleanField", "Boolean", "A boolean", "true")));
    assertThat(fieldDescriptions.get(3),
            is(descriptor("objectField.numberField1", "Integer", "An integer", "true")));
    assertThat(fieldDescriptions.get(4),
            is(descriptor("objectField.numberField2", "Decimal", "A decimal", "true")));
    assertThat(fieldDescriptions.get(5), is(descriptor("arrayField", "Array", "An array", "true")));
    assertThat(fieldDescriptions.get(6),
            is(descriptor("arrayField[].stringField", "String", "A string", "true")));
    assertThat(fieldDescriptions.get(7),
            is(descriptor("arrayField[].booleanField", "Boolean", "A boolean", "true")));
    assertThat(fieldDescriptions.get(8),
            is(descriptor("arrayField[].numberField1", "Integer", "An integer", "true")));
    assertThat(fieldDescriptions.get(9),
            is(descriptor("arrayField[].numberField2", "Decimal", "A decimal", "true")));
}

From source file:capital.scalable.restdocs.jackson.FieldDocumentationGeneratorTest.java

@Test
public void testGenerateDocumentationForFieldResolution() throws Exception {
    // given/* www  .  j  ava 2  s .co m*/
    // different mapper for custom field resolution
    ObjectMapper mapper = new ObjectMapper();
    mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker()
            .withFieldVisibility(JsonAutoDetect.Visibility.PUBLIC_ONLY));

    ConstraintReader constraintReader = mock(ConstraintReader.class);

    JavadocReader javadocReader = mock(JavadocReader.class);
    // comment on field directly
    when(javadocReader.resolveFieldComment(FieldCommentResolution.class, "location")).thenReturn("A location");
    // comment on getter instead of field
    when(javadocReader.resolveMethodComment(FieldCommentResolution.class, "getType")).thenReturn("A type");
    // comment on field instead of getter
    when(javadocReader.resolveFieldComment(FieldCommentResolution.class, "uri")).thenReturn("A uri");
    when(javadocReader.resolveFieldComment(FieldCommentResolution.class, "secured"))
            .thenReturn("A secured flag");

    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(mapper.writer(), javadocReader,
            constraintReader);
    Type type = FieldCommentResolution.class;

    // when
    List<ExtendedFieldDescriptor> fieldDescriptions = cast(
            generator.generateDocumentation(type, mapper.getTypeFactory()));

    // then
    assertThat(fieldDescriptions.size(), is(4));
    // field comment
    assertThat(fieldDescriptions.get(0), is(descriptor("location", "String", "A location", "true")));
    // getter comment
    assertThat(fieldDescriptions.get(1), is(descriptor("type", "String", "A type", "true")));
    // field comment
    assertThat(fieldDescriptions.get(2), is(descriptor("uri", "String", "A uri", "true")));
    assertThat(fieldDescriptions.get(3), is(descriptor("secured", "Boolean", "A secured flag", "true")));
}

From source file:org.wso2.iot.agent.services.operation.OperationManager.java

/**
 * Monitor currently enforced policy for compliance.
 *
 * @param operation - Operation object.//from w w w.  j av a2  s  .co  m
 */
public void monitorPolicy(org.wso2.iot.agent.beans.Operation operation) throws AndroidAgentException {
    if (Constants.DEBUG_MODE_ENABLED) {
        Log.d(TAG, "monitorPolicy started.");
    }
    String payload = Preference.getString(context, Constants.PreferenceFlag.APPLIED_POLICY);
    PolicyOperationsMapper operationsMapper = new PolicyOperationsMapper();
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

    PolicyComplianceChecker policyChecker = new PolicyComplianceChecker(context);
    ArrayList<ComplianceFeature> result = new ArrayList<>();

    try {
        if (payload != null) {
            List<org.wso2.iot.agent.beans.Operation> operations = mapper.readValue(payload,
                    mapper.getTypeFactory().constructCollectionType(List.class,
                            org.wso2.iot.agent.beans.Operation.class));
            for (org.wso2.iot.agent.beans.Operation op : operations) {
                op = operationsMapper.getOperation(op);
                result.add(policyChecker.checkPolicyState(op));
            }
            operation.setStatus(resources.getString(R.string.operation_value_completed));
            operation.setPayLoad(mapper.writeValueAsString(result));
            resultBuilder.build(operation);
        }
    } catch (IOException e) {
        operation.setStatus(resources.getString(R.string.operation_value_error));
        operation.setOperationResponse("Error in parsing policy monitor payload stream.");
        resultBuilder.build(operation);
        throw new AndroidAgentException("Error occurred while parsing stream.", e);
    }
    if (Constants.DEBUG_MODE_ENABLED) {
        Log.d(TAG, "monitorPolicy completed.");
    }
}

From source file:ai.general.net.MethodHandlerTest.java

/**
 * Tests handling of call requests with no error.
 *//*from   www  .  java2 s.c om*/
@Test
public void call() {
    try {
        // call 2 argument method with primitives types
        ObjectMapper json_parser = new ObjectMapper();
        Object[] data = json_parser.readValue("[2, 3.14]", Object[].class);
        TestObject test = new TestObject();
        MethodHandler handler = new MethodHandler("call1", false, test,
                test.getClass().getDeclaredMethod("call1", int.class, double.class));
        Request request = TestUtilities.createRequest("wamp://general.ai/call?type=call", data);
        handler.handle(request);
        Result result = request.getResult();
        Assert.assertFalse(result.hasErrors());
        assertThat(test.getNumber(), is(2));
        assertThat(test.getReal(), is(3.14));
        assertThat(result.numValues(), is(1));
        assertThat((double) result.getValue(0), is(6.28));

        // second call adds more results
        handler = new MethodHandler("call2", false, test,
                test.getClass().getDeclaredMethod("call2", int.class, double.class));
        handler.handle(request);
        result = request.getResult();
        assertThat(result.numValues(), is(2));
        assertThat((double) result.getValue(0), is(6.28));
        assertThat((double) result.getValue(1), is(13.8596));

        // call Object array with Object array return value
        test.clear();
        Object[] array = { json_parser.readValue(
                "[{\"real\":0.5, \"text\":\"1/2\"}," + "{\"real\":0.25, \"text\":\"1/4\"}]",
                json_parser.getTypeFactory().constructCollectionType(ArrayList.class, Object.class)) };
        handler = new MethodHandler("callBeanArray", false, test,
                test.getClass().getDeclaredMethod("callBeanArray", TestBean[].class));
        request = TestUtilities.createRequest("wamp://general.ai/callBeanArray?type=call", array);
        handler.handle(request);
        result = request.getResult();
        Assert.assertFalse(result.hasErrors());
        Assert.assertNotNull(test.getBeanArray());
        assertThat(test.getBeanArray().length, is(2));
        Assert.assertNotNull(test.getBeanArray()[0]);
        assertThat(test.getBeanArray()[0].getReal(), is(0.5));
        assertThat(test.getBeanArray()[0].getText(), is("1/2"));
        Assert.assertNotNull(test.getBeanArray()[1]);
        assertThat(test.getBeanArray()[1].getReal(), is(0.25));
        assertThat(test.getBeanArray()[1].getText(), is("1/4"));
        assertThat(result.numValues(), is(1));
        TestBean[] result_beans = (TestBean[]) result.getValue(0);
        assertThat(result_beans.length, is(2));
        assertThat(result_beans[0].getNumber(), is(1));
        assertThat(result_beans[0].getReal(), is(0.5));
        assertThat(result_beans[0].getText(), is("1/2"));
        assertThat(result_beans[1].getNumber(), is(2));
        assertThat(result_beans[1].getReal(), is(0.25));
        assertThat(result_beans[1].getText(), is("1/4"));
    } catch (Exception e) {
        Assert.fail(e.toString());
    }
}