Ejemplo n.º 1
0
 private DataMap create(DataItem dataItem) {
   if ((dataItem.getData() == null) && (dataItem.getAssets().size() > 0))
     throw new IllegalArgumentException("Cannot create DataMapItem from an empty DataItem.");
   if (dataItem.getData() == null) return new DataMap();
   try {
     byte[] data = dataItem.getData();
     DataMap dataMap = DataMap.fromByteArray(data);
     if (dataItem.getAssets() != null) {
       Iterator<String> iterator = dataItem.getAssets().keySet().iterator();
       while (iterator.hasNext()) {
         String key = (String) iterator.next();
         DataItemAsset dataItemAsset = (DataItemAsset) dataItem.getAssets().get(key);
         String[] pathArray = key.split("_@_");
         Log.e("spencer", "key = " + key + " pathArray = " + Arrays.toString(pathArray));
         DataMap localDataMap2 = dataMap;
         for (int i = 0; i < pathArray.length - 1; i++) {
           String str2 = pathArray[(i + 1)];
           String[] indexArray = str2.split("_#_");
           if (indexArray.length == 1) {
             localDataMap2 = localDataMap2.getDataMap(pathArray[i]);
           } else {
             int j = Integer.parseInt(indexArray[0]);
             localDataMap2 = (DataMap) localDataMap2.getDataMapArrayList(pathArray[i]).get(j);
             pathArray[(i + 1)] = indexArray[1];
           }
         }
         Log.e(
             "spencer",
             "putAsset -> " + pathArray[(pathArray.length - 1)] + " " + dataItemAsset.getId());
         localDataMap2.putAsset(
             pathArray[(pathArray.length - 1)], Asset.createFromRef(dataItemAsset.getId()));
       }
     }
     return dataMap;
   } catch (Exception e) {
     Log.e("DataMapItem", "parse a DataItem failed.", e);
     throw new IllegalStateException("parse a DataItem failed.", e);
   }
 }