001 package com.khubla.pragmatach.plugin.json;
002
003 import java.io.ByteArrayInputStream;
004
005 import com.khubla.pragmatach.framework.api.PragmatachException;
006 import com.khubla.pragmatach.framework.api.Response;
007 import com.khubla.pragmatach.framework.controller.BeanBoundController;
008 import com.khubla.pragmatach.framework.controller.impl.AbstractController;
009
010 /**
011 * @author tome
012 */
013 public class JSONController extends AbstractController implements BeanBoundController {
014 /**
015 * ctor
016 */
017 public JSONController() {
018 }
019
020 @Override
021 public void populateController() throws PragmatachException {
022 PragmaticControllerSerializer.deserialize(this, new ByteArrayInputStream(getRequest().getPostBody().getBytes()));
023 }
024
025 /**
026 * for testing purposes
027 */
028 public void populateController(String JSON) throws PragmatachException {
029 PragmaticControllerSerializer.deserialize(this, new ByteArrayInputStream(JSON.getBytes()));
030 }
031
032 /**
033 * render
034 */
035 public Response render() throws PragmatachException {
036 try {
037 return new JSONResponse(getCacheHeaders(), this);
038 } catch (final Exception e) {
039 throw new PragmatachException("Exception in render", e);
040 }
041 }
042 }