/* * Copyright 2014 Baidu, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ package com.baidubce.services.moladb.model.transform; import java.io.InputStream; import java.util.List; import java.util.Map; import com.baidubce.model.AbstractBceResponse; import com.baidubce.services.moladb.MolaDbConstants; import com.baidubce.services.moladb.model.AttributeValue; import com.baidubce.services.moladb.model.BatchGetItemResponse; import com.baidubce.services.moladb.model.KeysAndAttributes; import com.baidubce.util.JsonUtils; import com.fasterxml.jackson.databind.JsonNode; public class BatchGetItemResponseUnmarshaller implements Unmarshaller<BatchGetItemResponse, InputStream> { BatchGetItemResponse result = null; public BatchGetItemResponseUnmarshaller(AbstractBceResponse response) { result = (BatchGetItemResponse) response; } @Override public BatchGetItemResponse unmarshall(InputStream stream) throws Exception { String streamContents = Unmarshallers.readStreamContents(stream); if (streamContents == null || streamContents.isEmpty()) { return null; } BatchGetItemResponseContentUnmarshaller responseUnmarshaller = new BatchGetItemResponseContentUnmarshaller(); BatchGetUnprocessItemsUnmarshaller unprocessUnmarshaller = new BatchGetUnprocessItemsUnmarshaller(); JsonNode jsonObj = JsonUtils.jsonNodeOf(streamContents); JsonNode respObj = jsonObj.get(MolaDbConstants.JSON_RESPONSES); JsonNode unprocessObj = jsonObj.get(MolaDbConstants.JSON_UNPROCESSED_ITEMS); Map<String, KeysAndAttributes> unprocess = null; if (unprocessObj != null) { unprocess = unprocessUnmarshaller.unmarshall(unprocessObj); } Map<String, List<Map<String, AttributeValue>>> resp = null; if (respObj != null) { resp = responseUnmarshaller.unmarshall(respObj); } result.setResponses(resp); result.setUnprocessedItems(unprocess); return result; } }