распаковка ссылок

This commit is contained in:
2025-05-19 14:37:14 +03:00
parent c270429c66
commit 688f36c4c3
3 changed files with 10 additions and 32 deletions

View File

@@ -2,6 +2,8 @@ package _VisualDVM.Passes.All;
import Common.Utils.Utils_;
import _VisualDVM.Global;
import _VisualDVM.Passes.Sapfor.SilentSapforPass;
import _VisualDVM.ProjectData.SapforData.Arrays.ArrayLinkJson;
import _VisualDVM.ProjectData.SapforData.Arrays.ArrayLinksJson;
import _VisualDVM.ProjectData.SapforData.Arrays.ProjectArray;
public class SPF_GetArrayLinks extends SilentSapforPass {
@Override
@@ -21,35 +23,13 @@ public class SPF_GetArrayLinks extends SilentSapforPass {
*/
//эту инфу суем в список объявленных массивов, чтобы не плодить лишних таблиц.
System.out.println("packed="+ Utils_.Brackets(packed));
String[] data = packed.split("\\|");
long current_id;
int links_size = 0;
ProjectArray current_array = null;
int j = 0;
for (int i = 0; i < data.length; ++i) {
switch (j) {
case 0:
current_id = Long.parseLong(data[i]);
current_array =
target.declaratedArrays.get(current_id);
current_array.links.clear();
j++;
break;
case 1:
links_size = Integer.parseInt(data[i]);
j++;
break;
default:
if (links_size > 0) {
long link_id = Long.parseLong(data[i]);
current_array.links.put(link_id, target.declaratedArrays.get(link_id));
links_size--;
}
if (links_size == 0) {
j = 0;
current_array = null;
}
break;
ArrayLinksJson links = Utils_.gson.fromJson(packed, ArrayLinksJson.class);
for (ArrayLinkJson link: links.allLinks){
current_array = target.declaratedArrays.get(link.id);
current_array.links.clear();
for (long link_id: link.links){
current_array.links.put(link_id, target.declaratedArrays.get(link_id));
}
}
}