/**
   * プロパティを保存する
   *
   * @param key プロパティのキー値
   * @param value プロパティの値
   */
  public void setProperty(String key, Object value) {
    Property prop = propMap.get(key);

    // protobuf
    if (value instanceof GeneratedMessage) {
      value = ((com.google.protobuf.GeneratedMessage) value).toByteArray();
    } else if (value instanceof Enum) {
      value = ((Enum) value).name();
    } else if (value instanceof Bitmap) {
      try {
        Bitmap bmp = (Bitmap) value;
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, os);

        value = os.toByteArray();
      } catch (Exception e) {
        value = null;
      }
    } else if (value instanceof Boolean) {
      // trueならば"1"、falseならば"0"としてしまう
      value = Boolean.TRUE.equals(value) ? "1" : "0";
    }

    if (value instanceof byte[]) {
      prop.value = StringUtil.toString((byte[]) value);
    } else {
      prop.value = value.toString();
    }
    prop.modified = true;
  }
 protected BasePropertiesDatabase(Context context, String dbName) {
   this.context = context.getApplicationContext();
   if (!StringUtil.isEmpty(dbName)) {
     // 対象のDBが指定されている
     this.databaseFile = context.getDatabasePath(dbName);
   }
 }
 /**
  * base64エンコードオブジェクトを取得する
  *
  * @param key
  * @return
  */
 public byte[] getByteArrayProperty(String key) {
   try {
     return StringUtil.toByteArray(getStringProperty(key));
   } catch (Exception e) {
     return null;
   }
 }