SimpleDB で簡単にデータを取得するユーティリティ(2)

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;
  }
}