SimpleDB で簡単にデータを取得するユーティリティ(1)のつづき。
まず、はじめに、SimpleDB から取得したデータを格納する箱を用意します。基本的には、HashMap 形式で保持するようにしますが、別途 ItemName を保持できるように変数を用意しておきます。
public class ResultItem extends HashMap<String, String> implements Serializable { private static final long serialVersionUID = 5732592132008856195L; private String itemName; private String nextToken; protected void assign(Item item) { this.itemName = item.getName(); List<Attribute> attributes = item.getAttributes(); for (Attribute attr : attributes) { put(attr.getName(), attr.getValue()); } } protected void assign(String itemName, GetAttributesResult result) { this.itemName = itemName; List<Attribute> attributes = result.getAttributes(); for (Attribute attr : attributes) { put(attr.getName(), attr.getValue()); } } /** * @return itemName */ public String getItemName() { return itemName; } public Date getAsDate(String key) { String value = get(key); if (value == null) { return null; } try { return SimpleDBUtils.decodeDate(value); } catch (ParseException e) { // ignore } return null; } public Integer getAsInt(String key) { String value = get(key); if (value == null) { return null; } return SimpleDBUtils.decodeZeroPaddingInt(value); } /** * @return nextToken */ public String getNextToken() { return nextToken; } }