Example usage for com.liferay.portal.kernel.json JSONFactoryUtil looseDeserialize

List of usage examples for com.liferay.portal.kernel.json JSONFactoryUtil looseDeserialize

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.json JSONFactoryUtil looseDeserialize.

Prototype

public static <T> T looseDeserialize(String json, Class<T> clazz) 

Source Link

Usage

From source file:com.liferay.alloy.mvc.AlloyDataRequestHandler.java

License:Open Source License

protected static String executeDynamicQuery(BaseAlloyControllerImpl baseAlloyControllerImpl,
        ActionRequest actionRequest) throws Exception {

    if (baseAlloyControllerImpl.permissioned) {
        AlloyPermission.check(baseAlloyControllerImpl.themeDisplay, baseAlloyControllerImpl.controllerPath,
                "index");
    }//from  w w w  . ja  va2 s.com

    AlloyServiceInvoker alloyServiceInvoker = baseAlloyControllerImpl.alloyServiceInvoker;

    List<Object> properties = JSONFactoryUtil.looseDeserialize(ParamUtil.getString(actionRequest, "properties"),
            ArrayList.class);
    int start = ParamUtil.getInteger(actionRequest, "start", QueryUtil.ALL_POS);
    int end = ParamUtil.getInteger(actionRequest, "end", QueryUtil.ALL_POS);

    List<BaseModel<?>> baseModels = alloyServiceInvoker.executeDynamicQuery(properties.toArray(), start, end);

    return JSONFactoryUtil.looseSerialize(baseModels);
}

From source file:com.liferay.alloy.mvc.AlloyDataRequestHandler.java

License:Open Source License

protected static String executeSearch(BaseAlloyControllerImpl baseAlloyControllerImpl,
        ActionRequest actionRequest) throws Exception {

    if (baseAlloyControllerImpl.permissioned) {
        AlloyPermission.check(baseAlloyControllerImpl.themeDisplay, baseAlloyControllerImpl.controllerPath,
                "index");
    }/*from   w  ww. j  a v a 2  s.  co m*/

    Map<String, Serializable> attributes = null;

    String attributesString = ParamUtil.getString(actionRequest, "attributes");

    if (Validator.isNotNull(attributesString)) {
        attributes = JSONFactoryUtil.looseDeserialize(attributesString, HashMap.class);
    }

    String keywords = ParamUtil.getString(actionRequest, "keywords");

    Sort[] sorts = null;

    String sortsString = ParamUtil.getString(actionRequest, "sorts");

    if (Validator.isNotNull(sortsString)) {
        Map<String, Boolean> sortsMap = JSONFactoryUtil.looseDeserialize(sortsString, LinkedHashMap.class);

        sorts = new Sort[sortsMap.size()];

        int i = 0;

        for (Map.Entry<String, Boolean> entry : sortsMap.entrySet()) {
            sorts[i++] = new Sort(entry.getKey(), entry.getValue());
        }
    }

    AlloySearchResult alloySearchResult = baseAlloyControllerImpl.search(
            PortalUtil.getHttpServletRequest(actionRequest), actionRequest, attributes, keywords, sorts);

    List<BaseModel<?>> baseModels = alloySearchResult.getBaseModels();

    return JSONFactoryUtil.looseSerialize(baseModels);
}

From source file:com.liferay.jsonwebserviceclient.BaseJSONWebServiceClientHandler.java

License:Open Source License

protected <T> T doGetToObject(Class<T> clazz, String url, String... parametersArray) throws Exception {

    String json = doGet(url, parametersArray);

    if (json.contains("exception")) {
        throw new Exception(getExceptionMessage(json));
    }//from  ww  w. j a v  a  2  s. c o m

    return JSONFactoryUtil.looseDeserialize(json, clazz);
}

From source file:com.marcelmika.lims.portal.controller.BuddyController.java

License:Open Source License

/**
 * Update buddy's status//  w w w  .j  av a 2s . c  om
 *
 * @param request  ResourceRequest
 * @param response ResourceResponse
 */
public void updateBuddyPresence(ResourceRequest request, ResourceResponse response) {

    Buddy buddy; // Authorized user
    Presence presence; // Buddy's presence

    // Deserialize
    try {
        // Create buddy from request
        buddy = Buddy.fromResourceRequest(request);

        // Presence
        Buddy deserializedBuddy = JSONFactoryUtil
                .looseDeserialize(request.getParameter(RequestParameterKeys.KEY_CONTENT), Buddy.class);
        presence = deserializedBuddy.getPresence();
    }
    // Failure
    catch (Exception exception) {
        // Bad request
        ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        // Log
        log.debug(exception);
        // End here
        return;
    }

    // Send request to core service
    UpdatePresenceBuddyResponseEvent responseEvent = buddyCoreService.updatePresence(
            new UpdatePresenceBuddyRequestEvent(buddy.getBuddyId(), presence.toPresenceDetails()));

    // Disable chat if presence is offline
    if (presence == Presence.OFFLINE) {
        settingsCoreService.disableChat(new DisableChatRequestEvent(buddy.toBuddyDetails()));
    }
    // Enable otherwise
    else {
        settingsCoreService.enableChat(new EnableChatRequestEvent(buddy.toBuddyDetails()));
    }

    // Success
    if (responseEvent.isSuccess()) {
        ResponseUtil.writeResponse(null, HttpStatus.NO_CONTENT, response);
    }
    // Failure
    else {
        UpdatePresenceBuddyResponseEvent.Status status = responseEvent.getStatus();
        // Bad request
        if (status == UpdatePresenceBuddyResponseEvent.Status.ERROR_WRONG_PARAMETERS) {
            ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        }
        // Unauthorized
        else if (status == UpdatePresenceBuddyResponseEvent.Status.ERROR_NO_SESSION) {
            ResponseUtil.writeResponse(HttpStatus.UNAUTHORIZED, response);
        }
        // Everything else is a server fault
        else {
            ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response);
            // Log
            log.error(responseEvent.getException());
        }
    }
}

From source file:com.marcelmika.lims.portal.controller.BuddyController.java

License:Open Source License

/**
 * Returns a list of buddies based on the search query
 *
 * @param request  ResourceRequest//from  w  w w .  ja  v a2 s .  c o  m
 * @param response ResourceResponse
 */
public void searchBuddies(ResourceRequest request, ResourceResponse response) {

    Buddy buddy; // Authorized user
    SearchBuddiesParameters parameters; // Request parameters

    // Deserialize
    try {
        // Create buddy from request
        buddy = Buddy.fromResourceRequest(request);

        // Parameters
        parameters = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_PARAMETERS),
                SearchBuddiesParameters.class);
    }
    // Failure
    catch (Exception exception) {
        // Bad request
        ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        // Log
        log.debug(exception);
        // End here
        return;
    }

    // Search event
    SearchBuddiesResponseEvent responseEvent = buddyCoreService
            .searchBuddies(new SearchBuddiesRequestEvent(buddy.toBuddyDetails(), parameters.getSearchQuery()));

    // Success
    if (responseEvent.isSuccess()) {

        // Map buddy details to buddy
        List<Buddy> buddyList = Buddy.fromBuddyDetailsList(responseEvent.getSearchResults());

        // Serialize
        String serialized = JSONFactoryUtil.looseSerialize(buddyList);

        // Write success to response
        ResponseUtil.writeResponse(serialized, HttpStatus.OK, response);
    }
    // Failure
    else {
        SearchBuddiesResponseEvent.Status status = responseEvent.getStatus();
        // Bad request
        if (status == SearchBuddiesResponseEvent.Status.ERROR_WRONG_PARAMETERS) {
            ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        }
        // Everything else is server fault
        else {
            ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response);
            // Log
            log.error(responseEvent.getException());
        }
    }
}

From source file:com.marcelmika.lims.portal.controller.ConversationController.java

License:Open Source License

/**
 * Creates single user conversation with a buddy selected in request
 *
 * @param request  ResourceRequest/*from  w w  w  .  j  a  v  a  2s  .c o  m*/
 * @param response ResourceResponse
 */
public void createSingleUserConversation(ResourceRequest request, ResourceResponse response) {

    Buddy buddy; // Authorized user
    Conversation conversation; // Conversation that should be created

    // Deserizalize
    try {
        // Create buddy from request
        buddy = Buddy.fromResourceRequest(request);

        // Deserialize Content
        conversation = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_CONTENT),
                Conversation.class);
    }
    // Failure
    catch (Exception exception) {
        // Bad request
        ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        // Log
        if (log.isDebugEnabled()) {
            log.debug(exception);
        }
        // End here
        return;
    }

    // This is a single user chat conversation
    conversation.setConversationType(ConversationType.SINGLE_USER);

    CreateConversationResponseEvent responseEvent = conversationCoreService
            .createConversation(new CreateConversationRequestEvent(buddy.toBuddyDetails(),
                    conversation.toConversationDetails(), null));

    // Success
    if (responseEvent.isSuccess()) {
        // Map conversation from response
        Conversation conversationResponse = Conversation
                .fromConversationDetails(responseEvent.getConversation());
        // Serialize
        String serialized = JSONFactoryUtil.looseSerialize(conversationResponse);
        // Write success to response
        ResponseUtil.writeResponse(serialized, HttpStatus.OK, response);
    }
    // Failure
    else {
        CreateConversationResponseEvent.Status status = responseEvent.getStatus();
        // Unauthorized
        if (status == CreateConversationResponseEvent.Status.ERROR_NO_SESSION) {
            ResponseUtil.writeResponse(HttpStatus.UNAUTHORIZED, response);
        }
        // Bad request
        else if (status == CreateConversationResponseEvent.Status.ERROR_UNKNOWN_CONVERSATION_TYPE
                || status == CreateConversationResponseEvent.Status.ERROR_WRONG_PARAMETERS) {
            ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        }
        // Everything else is server fault
        else {
            ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response);
            // Log
            log.error(responseEvent.getException());
        }
    }
}

From source file:com.marcelmika.lims.portal.controller.ConversationController.java

License:Open Source License

/**
 * Reads Single User Conversation messages
 *
 * @param request  ResourceRequest/*  w  w  w . j a v a2  s  .c  o m*/
 * @param response ResourceResponse
 */
public void readSingleUserConversation(ResourceRequest request, ResourceResponse response) {

    Buddy buddy; // Authorized user
    ReadConversationParameters parameters; // Request parameters

    // Deserialize
    try {
        // Buddy from request
        buddy = Buddy.fromResourceRequest(request);

        // Parameters
        parameters = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_PARAMETERS),
                ReadConversationParameters.class);
    }
    // Failure
    catch (Exception exception) {
        // Bad request
        ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        // Log
        log.debug(exception);
        // End here
        return;
    }

    // Create objects from parameters
    Conversation conversation = new Conversation();
    conversation.setConversationId(parameters.getConversationId());
    Pagination pagination = parameters.getPagination();

    // Read conversations
    ReadSingleUserConversationResponseEvent responseEvent = conversationCoreService
            .readConversation(new ReadSingleUserConversationRequestEvent(buddy.toBuddyDetails(), // Buddy is participant
                    conversation.toConversationDetails(), // Read proper conversation
                    pagination.toPaginationDetails()) // Pagination request
    );

    // Success
    if (responseEvent.isSuccess()) {
        conversation = Conversation.fromConversationDetails(responseEvent.getConversation());

        // Client has fresh copy so there is no need to send it
        if (conversation.getEtag().equals(parameters.getEtag())) {
            ResponseUtil.writeResponse(HttpStatus.NOT_MODIFIED, response);
            return;
        }

        // Serialize
        String serialized = JSONFactoryUtil.looseSerialize(conversation, "messages", "messages.from");

        // Write success to response
        ResponseUtil.writeResponse(serialized, HttpStatus.OK, response);
    }
    // Failure
    else {
        ReadSingleUserConversationResponseEvent.Status status = responseEvent.getStatus();
        // Not found
        if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_NOT_FOUND) {
            ResponseUtil.writeResponse(HttpStatus.NOT_FOUND, response);
        }
        // Forbidden
        else if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_FORBIDDEN) {
            ResponseUtil.writeResponse(HttpStatus.FORBIDDEN, response);
        }
        // Unauthorized
        else if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_NO_SESSION) {
            ResponseUtil.writeResponse(HttpStatus.UNAUTHORIZED, response);
        }
        // Bad request
        else if (status == ReadSingleUserConversationResponseEvent.Status.ERROR_WRONG_PARAMETERS) {
            ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        }
        // Everything else is server fault
        else {
            ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response);
            // Log
            log.error(responseEvent.getException());
        }
    }
}

From source file:com.marcelmika.lims.portal.controller.ConversationController.java

License:Open Source License

/**
 * Closes Single User Conversation/*from   w  ww. j a  va2  s  . c o m*/
 *
 * @param request  ResourceRequest
 * @param response ResourceResponse
 */
public void closeSingleUserConversation(ResourceRequest request, ResourceResponse response) {

    Buddy buddy; // Authorized user
    CloseConversationParameters parameters; // Request parameters

    // Deserizalize
    try {
        // Create buddy from request
        buddy = Buddy.fromResourceRequest(request);

        // Deserialize Parameters
        parameters = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_PARAMETERS),
                CloseConversationParameters.class);
    }
    // Failure
    catch (Exception exception) {
        // Bad request
        ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        // Log
        log.debug(exception);
        // End here
        return;
    }

    // Close conversation
    CloseConversationResponseEvent responseEvent = conversationCoreService.closeConversation(
            new CloseConversationRequestEvent(buddy.getBuddyId(), parameters.getConversationId()));

    // Success
    if (responseEvent.isSuccess()) {
        ResponseUtil.writeResponse(HttpStatus.NO_CONTENT, response);
    }
    // Failure
    else {
        CloseConversationResponseEvent.Status status = responseEvent.getStatus();
        // Not found
        if (status == CloseConversationResponseEvent.Status.ERROR_NO_CONVERSATION_FOUND
                || status == CloseConversationResponseEvent.Status.ERROR_NO_PARTICIPANT_FOUND) {
            ResponseUtil.writeResponse(HttpStatus.NOT_FOUND, response);
        }
        // Everything else is server fault
        else {
            ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response);
        }
    }
}

From source file:com.marcelmika.lims.portal.controller.ConversationController.java

License:Open Source License

/**
 * Resets unread messages counter for the given conversation and participant
 *
 * @param request  ResourceRequest//from w w  w . j a va  2 s  .  co  m
 * @param response ResourceResponse
 */
public void resetUnreadMessagesCounter(ResourceRequest request, ResourceResponse response) {

    Buddy buddy; // Authorized user
    ResetUnreadMessagesCounterParameters parameters; // Request parameters

    // Deserialize
    try {
        // Create buddy from request
        buddy = Buddy.fromResourceRequest(request);

        // Deserialize Parameters
        parameters = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_PARAMETERS),
                ResetUnreadMessagesCounterParameters.class);
    }
    // Failure
    catch (Exception exception) {
        // Bad request
        ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        // Log
        log.debug(exception);
        // End here
        return;
    }

    // Reset counter
    ResetUnreadMessagesCounterResponseEvent responseEvent = conversationCoreService.resetUnreadMessagesCounter(
            new ResetUnreadMessagesCounterRequestEvent(buddy.getBuddyId(), parameters.getConversationId()));

    // Success
    if (responseEvent.isSuccess()) {
        ResponseUtil.writeResponse(HttpStatus.NO_CONTENT, response);
    }
    // Failure
    else {
        ResetUnreadMessagesCounterResponseEvent.Status status = responseEvent.getStatus();
        // Not found
        if (status == ResetUnreadMessagesCounterResponseEvent.Status.ERROR_NO_CONVERSATION_FOUND
                || status == ResetUnreadMessagesCounterResponseEvent.Status.ERROR_NO_PARTICIPANT_FOUND) {
            ResponseUtil.writeResponse(HttpStatus.NOT_FOUND, response);
        }
        // Everything else is server fault
        else {
            ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response);
            // Log
            log.error(responseEvent.getException());
        }
    }
}

From source file:com.marcelmika.lims.portal.controller.ConversationController.java

License:Open Source License

/**
 * Create new message in conversation/*from  w w  w  . j  a v  a2s . c o  m*/
 *
 * @param request  ResourceRequest
 * @param response ResourceResponse
 */
public void createMessage(ResourceRequest request, ResourceResponse response) {

    Buddy buddy; // Authorized user
    CreateMessageParameters parameters; // Request parameters
    Message message; // Message that should be sent

    // Deserialize
    try {
        // Buddy from request
        buddy = Buddy.fromResourceRequest(request);

        // Deserialize Parameters
        parameters = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_PARAMETERS),
                CreateMessageParameters.class);
        // Deserialize Content
        message = JSONFactoryUtil.looseDeserialize(request.getParameter(RequestParameterKeys.KEY_CONTENT),
                Message.class);
    }
    // Failure
    catch (Exception exception) {
        // Bad request
        ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        // Log
        log.debug(exception);
        // End here
        return;
    }

    // Create new conversation that will be passed to the system
    Conversation conversation = new Conversation();
    conversation.setConversationType(ConversationType.SINGLE_USER);
    conversation.setConversationId(parameters.getConversationId());
    conversation.setBuddy(buddy);

    // Add to system
    SendMessageResponseEvent responseEvent = conversationCoreService
            .sendMessage(new SendMessageRequestEvent(buddy.toBuddyDetails(), // Creator
                    conversation.toConversationDetails(), // Conversation
                    message.toMessageDetails()) // Message
    );

    // Success
    if (responseEvent.isSuccess()) {
        // Map message from response
        Message responseMessage = Message.fromMessageDetails(responseEvent.getMessage());
        // Serialize
        String serializedMessage = JSONFactoryUtil.looseSerialize(responseMessage);
        // Write success to response
        ResponseUtil.writeResponse(serializedMessage, HttpStatus.OK, response);
    }
    // Failure
    else {
        SendMessageResponseEvent.Status status = responseEvent.getStatus();
        // Unauthorized
        if (status == SendMessageResponseEvent.Status.ERROR_NO_SESSION) {
            ResponseUtil.writeResponse(HttpStatus.UNAUTHORIZED, response);
        }
        // Forbidden
        else if (status == SendMessageResponseEvent.Status.ERROR_FORBIDDEN) {
            ResponseUtil.writeResponse(HttpStatus.FORBIDDEN, response);
        }
        // Not found
        else if (status == SendMessageResponseEvent.Status.ERROR_NOT_FOUND) {
            ResponseUtil.writeResponse(HttpStatus.NOT_FOUND, response);
        }
        // Bad Request
        else if (status == SendMessageResponseEvent.Status.ERROR_UNKNOWN_CONVERSATION_TYPE
                || status == SendMessageResponseEvent.Status.ERROR_WRONG_PARAMETERS) {
            ResponseUtil.writeResponse(HttpStatus.BAD_REQUEST, response);
        }
        // Everything else is a server fault
        else {
            ResponseUtil.writeResponse(HttpStatus.INTERNAL_SERVER_ERROR, response);
            // Log
            log.error(responseEvent.getException());
        }
    }
}