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

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

4
.idea/workspace.xml generated
View File

@@ -7,9 +7,7 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Arrays/ArrayLinkJson.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Arrays/ArrayLinksJson.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetArrayLinks.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetArrayLinks.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetArrayLinks.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetArrayLinks.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />

View File

@@ -4,7 +4,7 @@
"ServerUserPassword": "mprit_2011", "ServerUserPassword": "mprit_2011",
"OfferRegistrationOnStart": true, "OfferRegistrationOnStart": true,
"Workspace": "E:\\Tests", "Workspace": "E:\\Tests",
"ProjectsSearchDirectory": "E:\\Tests\\Downloads\\bugreport_1747139509\\test_routine_7", "ProjectsSearchDirectory": "E:\\BUG",
"DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system", "DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system",
"VisualiserPath": "C:\\Users\\misha\\Downloads", "VisualiserPath": "C:\\Users\\misha\\Downloads",
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F", "Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",

View File

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