/** * */ package com.ebay.cloud.cms.typsafe.restful; import java.text.MessageFormat; import org.codehaus.jackson.JsonNode; import com.ebay.cloud.cms.typsafe.exception.CMSClientException; import com.ebay.cloud.cms.typsafe.metadata.model.MetadataManager; import com.ebay.cloud.cms.typsafe.restful.RestExecutor.HttpRequest; import com.ebay.cloud.cms.typsafe.service.CMSClientContext; import com.sun.jersey.api.client.ClientResponse; /** * @author liasu * */ public class MetaResponseProcessor extends AbstractResponseProcessor { private final JsonNode rootNode; private MetadataManager mm; public MetaResponseProcessor(ClientResponse resp, HttpRequest request, CMSClientContext context) { super(resp, request, context); try { rootNode = objectMapper.readTree(jsonResponse); } catch (Exception e) { throw new CMSClientException(resp.getStatus(), MessageFormat.format( "parse response string error for metadata retrieve, the response string is {0}", jsonResponse), jsonResponse, requestInfo); } parseResponseHeader(); parseResponseBody(); } private void parseResponseBody() { JsonNode resultNode = rootNode.get(RESULT); if (resultNode != null && resultNode.isArray() && resultNode.size() > 0) { mm = MetadataManager.load(resultNode); } } public MetadataManager getMetaManager() { return mm; } @Override protected JsonNode getRootNode() { return rootNode; } }