распаковка ссылок
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user