package com.baidubce.services.moladb.model.transform; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.baidubce.BceClientException; import com.baidubce.model.AbstractBceResponse; import com.baidubce.services.moladb.MolaDbConstants; import com.baidubce.services.moladb.model.GetInstanceResponse; import com.baidubce.util.JsonUtils; import com.fasterxml.jackson.databind.JsonNode; public class GetInstanceResponseUnmarshaller implements Unmarshaller<GetInstanceResponse, InputStream> { private GetInstanceResponse result; public GetInstanceResponseUnmarshaller(AbstractBceResponse response) { result = (GetInstanceResponse) response; } @Override public GetInstanceResponse unmarshall(InputStream inputStream) throws Exception { String streamContents = Unmarshallers.readStreamContents(inputStream); JsonNode root = JsonUtils.jsonNodeOf(streamContents); if (!root.isObject()) { throw new BceClientException("input json object:" + root.toString() + " is not an object"); } JsonNode tableObj = root.get(MolaDbConstants.JSON_TABLENAMES); String desc = root.get(MolaDbConstants.JSON_DESCRIPTION).asText(); String name = root.get(MolaDbConstants.JSON_NAME).asText(); result.setDescription(desc); result.setInstanceName(name); List<String> tableNames = new ArrayList<String>(); Iterator<JsonNode> tableList = tableObj.elements(); while (tableList.hasNext()) { JsonNode table = tableList.next(); tableNames.add(table.asText()); } result.setTableNames(tableNames); return result; } }