public static void loadMessage(AbstractBranchCacheMessage message, PropertyStore store) {
   List<BranchRow> rows = message.getBranchRows();
   int rowCount = store.getInt(Fields.BRANCH_COUNT.name());
   for (int index = 0; index < rowCount; index++) {
     String[] rowData = store.getArray(TranslationUtil.createKey(Fields.BRANCH_ROW, index));
     rows.add(BranchRow.fromArray(rowData));
   }
   TranslationUtil.loadMap(message.getChildToParent(), store, Fields.CHILD_TO_PARENT);
   TranslationUtil.loadMap(message.getBranchToBaseTx(), store, Fields.BRANCH_TO_BASE_TX);
   TranslationUtil.loadMap(message.getBranchToSourceTx(), store, Fields.BRANCH_TO_SRC_TX);
   TranslationUtil.loadMap(message.getBranchToAssocArt(), store, Fields.BRANCH_TO_ASSOC_ART);
   TranslationUtil.loadArrayMap(message.getBranchAliases(), store, Fields.BRANCH_TO_ALIASES);
   TranslationUtil.loadTripletList(message.getMergeBranches(), store, Fields.SRC_DEST_MERGE);
 }
  public static void loadStore(PropertyStore store, AbstractBranchCacheMessage message) {
    List<BranchRow> rows = message.getBranchRows();
    for (int index = 0; index < rows.size(); index++) {
      BranchRow row = rows.get(index);
      store.put(TranslationUtil.createKey(Fields.BRANCH_ROW, index), row.toArray());
    }
    store.put(Fields.BRANCH_COUNT.name(), rows.size());

    TranslationUtil.putMap(store, Fields.CHILD_TO_PARENT, message.getChildToParent());
    TranslationUtil.putMap(store, Fields.BRANCH_TO_BASE_TX, message.getBranchToBaseTx());
    TranslationUtil.putMap(store, Fields.BRANCH_TO_SRC_TX, message.getBranchToSourceTx());
    TranslationUtil.putMap(store, Fields.BRANCH_TO_ASSOC_ART, message.getBranchToAssocArt());
    TranslationUtil.putArrayMap(store, Fields.BRANCH_TO_ALIASES, message.getBranchAliases());
    TranslationUtil.putTripletList(store, Fields.SRC_DEST_MERGE, message.getMergeBranches());
  }