распаковка с учетом интов
This commit is contained in:
2
.idea/workspace.xml
generated
2
.idea/workspace.xml
generated
@@ -9,6 +9,8 @@
|
|||||||
<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 beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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_GetGraphLoops.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ import _VisualDVM.ProjectData.Files.DBProjectFile;
|
|||||||
import _VisualDVM.ProjectData.SapforData.Loops.Json.FileLoopsJson;
|
import _VisualDVM.ProjectData.SapforData.Loops.Json.FileLoopsJson;
|
||||||
import _VisualDVM.ProjectData.SapforData.Loops.Json.LoopsJson;
|
import _VisualDVM.ProjectData.SapforData.Loops.Json.LoopsJson;
|
||||||
import _VisualDVM.ProjectData.SapforData.Loops.Loop;
|
import _VisualDVM.ProjectData.SapforData.Loops.Loop;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
public class SPF_GetGraphLoops extends SapforAnalysis {
|
public class SPF_GetGraphLoops extends SapforAnalysis {
|
||||||
@Override
|
@Override
|
||||||
@@ -41,16 +43,15 @@ public class SPF_GetGraphLoops extends SapforAnalysis {
|
|||||||
int allLoops=0;
|
int allLoops=0;
|
||||||
Vector<String> loops_programs = new Vector<>();
|
Vector<String> loops_programs = new Vector<>();
|
||||||
System.out.println(packed);
|
System.out.println(packed);
|
||||||
|
File debug = new File(Global.TempDirectory, "debug.txt");
|
||||||
|
FileUtils.writeStringToFile(debug,packed);
|
||||||
LoopsJson loopsJson = Utils_.gson.fromJson(packed, LoopsJson.class);
|
LoopsJson loopsJson = Utils_.gson.fromJson(packed, LoopsJson.class);
|
||||||
for (FileLoopsJson fileLoopsJson: loopsJson.allLoops){
|
for (FileLoopsJson fileLoopsJson: loopsJson.allLoops){
|
||||||
for (Loop loop: fileLoopsJson.loops)
|
DBProjectFile projectFile = target.db.files.get(fileLoopsJson.file);
|
||||||
loop.setFile(fileLoopsJson.file);
|
projectFile.LoopNests.addAll(fileLoopsJson.loops);
|
||||||
//-
|
projectFile.saveAllLoops();
|
||||||
DBProjectFile dbProjectFile = target.db.files.get(fileLoopsJson.file);
|
projectFile.LoopGraphTitle = "Всего циклов: " + projectFile.AllLoops.size();
|
||||||
dbProjectFile.saveAllLoops();
|
target.numLoops += projectFile.AllLoops.size();
|
||||||
dbProjectFile.LoopGraphTitle = "Всего циклов: " + dbProjectFile.AllLoops.size();
|
|
||||||
//-
|
|
||||||
target.numLoops += dbProjectFile.AllLoops.size();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ public class DBProjectFile extends ProjectFile {
|
|||||||
public DefaultMutableTreeNode show_loop_graph_r(FileObjectWithMessages element) {
|
public DefaultMutableTreeNode show_loop_graph_r(FileObjectWithMessages element) {
|
||||||
DefaultMutableTreeNode res = new DefaultMutableTreeNode(element);
|
DefaultMutableTreeNode res = new DefaultMutableTreeNode(element);
|
||||||
if (element instanceof Loop) {
|
if (element instanceof Loop) {
|
||||||
for (FileObjectWithMessages child : ((Loop) element).getAllChildren())
|
for (FileObjectWithMessages child : ((Loop) element).getGraphNodes(this))
|
||||||
res.add(show_loop_graph_r(child));
|
res.add(show_loop_graph_r(child));
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package _VisualDVM.ProjectData.SapforData.Loops;
|
package _VisualDVM.ProjectData.SapforData.Loops;
|
||||||
import Common.Visual.Fonts.VisualiserFonts;
|
import Common.Visual.Fonts.VisualiserFonts;
|
||||||
|
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||||
import _VisualDVM.ProjectData.Messages.Message;
|
import _VisualDVM.ProjectData.Messages.Message;
|
||||||
import _VisualDVM.ProjectData.SapforData.FileObject;
|
|
||||||
import _VisualDVM.ProjectData.SapforData.FileObjectWithMessages;
|
import _VisualDVM.ProjectData.SapforData.FileObjectWithMessages;
|
||||||
import _VisualDVM.ProjectData.SapforData.Functions.FuncCall;
|
import _VisualDVM.ProjectData.SapforData.Functions.FuncCall;
|
||||||
import com.google.gson.annotations.Expose;
|
import com.google.gson.annotations.Expose;
|
||||||
@@ -34,24 +34,33 @@ public class Loop extends FileObjectWithMessages {
|
|||||||
// @Expose
|
// @Expose
|
||||||
// public List<NonRectIter> non_rect_iters = new Vector<>();
|
// public List<NonRectIter> non_rect_iters = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
public List<EGoto> extGotos = new Vector<>();
|
public List<Integer> extGotos = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
public List<IGoto> intGotos = new Vector<>();
|
public List<Integer> intGotos = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
public List<IO> ios = new Vector<>();
|
public List<Integer> ios = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
public List<Stop> stops = new Vector<>();
|
public List<Integer> stops = new Vector<>();
|
||||||
@Expose
|
@Expose
|
||||||
public List<Loop> children = new Vector<>();
|
public List<Loop> children = new Vector<>();
|
||||||
//--
|
//--
|
||||||
public List<FileObjectWithMessages> getAllChildren(){
|
public List<FileObjectWithMessages> getGraphNodes(DBProjectFile dbProjectFile){
|
||||||
List<FileObjectWithMessages> all_children = new Vector<>();
|
List<FileObjectWithMessages> all_children = new Vector<>();
|
||||||
|
//-
|
||||||
|
if (hasNonRectangularBounds!=0)
|
||||||
|
all_children.add(new NonRectIter(dbProjectFile, line));
|
||||||
|
//-
|
||||||
all_children.addAll(funcCalls);
|
all_children.addAll(funcCalls);
|
||||||
// all_children.addAll(non_rect_iters);
|
//-
|
||||||
all_children.addAll(extGotos);
|
for (int line_: extGotos)
|
||||||
all_children.addAll(intGotos);
|
all_children.add(new EGoto(dbProjectFile, line_));
|
||||||
all_children.addAll(ios);
|
for (int line_: intGotos)
|
||||||
all_children.addAll(stops);
|
all_children.add(new IGoto(dbProjectFile, line_));
|
||||||
|
for (int line_: ios)
|
||||||
|
all_children.add(new IO(dbProjectFile, line_));
|
||||||
|
for (int line_: stops)
|
||||||
|
all_children.add(new Stop(dbProjectFile, line_));
|
||||||
|
//-
|
||||||
all_children.addAll(children);
|
all_children.addAll(children);
|
||||||
return all_children;
|
return all_children;
|
||||||
}
|
}
|
||||||
@@ -80,10 +89,4 @@ public class Loop extends FileObjectWithMessages {
|
|||||||
for (Loop loop: children)
|
for (Loop loop: children)
|
||||||
loop.toMap_r(loops_map);
|
loop.toMap_r(loops_map);
|
||||||
}
|
}
|
||||||
@Override
|
|
||||||
public void setFile(String file_in) {
|
|
||||||
super.setFile(file_in);
|
|
||||||
for (FileObject fileObject: getAllChildren())
|
|
||||||
fileObject.setFile(file_in);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user