Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite45d7f9

Browse files
committed
Remove method chaining
1 parentcfa2878 commite45d7f9

File tree

9 files changed

+268
-453
lines changed

9 files changed

+268
-453
lines changed

‎.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/.idea
22
/.gradle
33
/build
4+
/out
45
.DS_Store
Lines changed: 19 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,39 @@
11
packageorg.algorithm_visualizer;
22

3-
publicclassArray1DTracerextendsTracer {
4-
publicArray1DTracer(Stringtitle) {
5-
super(title);
3+
publicclassArray1DTracerextendsArray2DTracer {
4+
publicvoidset(Objectarray1d) {
5+
command("set",newObject[]{array1d});
66
}
77

8-
publicArray1DTracer() {
9-
this(null);
8+
publicvoidpatch(intx,Objectv) {
9+
command("patch",newObject[]{x,v});
1010
}
1111

12-
publicArray1DTracerset(Objectarray1d) {
13-
addTrace(key,"set",newObject[]{array1d});
14-
returnthis;
12+
publicvoidpatch(intx) {
13+
command("patch",newObject[]{x});
1514
}
1615

17-
publicArray1DTracerset() {
18-
addTrace(key,"set",newObject[]{});
19-
returnthis;
16+
publicvoiddepatch(intx) {
17+
command("depatch",newObject[]{x});
2018
}
2119

22-
publicArray1DTracerreset() {
23-
addTrace(key,"reset",newObject[]{});
24-
returnthis;
20+
publicvoidselect(intsx,intex) {
21+
command("select",newObject[]{sx,ex});
2522
}
2623

27-
publicArray1DTracerdelay() {
28-
addTrace(key,"delay",newObject[]{});
29-
returnthis;
24+
publicvoidselect(intx) {
25+
command("select",newObject[]{x});
3026
}
3127

32-
publicArray1DTracerpatch(intx,Objectv) {
33-
addTrace(key,"patch",newObject[]{x,v});
34-
returnthis;
28+
publicvoiddeselect(intsx,intex) {
29+
command("deselect",newObject[]{sx,ex});
3530
}
3631

37-
publicArray1DTracerdepatch(intx) {
38-
addTrace(key,"depatch",newObject[]{x});
39-
returnthis;
32+
publicvoiddeselect(intx) {
33+
command("deselect",newObject[]{x});
4034
}
4135

42-
publicArray1DTracerselect(intx) {
43-
addTrace(key,"select",newObject[]{x});
44-
returnthis;
45-
}
46-
47-
publicArray1DTracerselect(intsx,intex) {
48-
addTrace(key,"select",newObject[]{sx,ex});
49-
returnthis;
50-
}
51-
52-
publicArray1DTracerdeselect(intx) {
53-
addTrace(key,"deselect",newObject[]{x});
54-
returnthis;
55-
}
56-
57-
publicArray1DTracerdeselect(intsx,intex) {
58-
addTrace(key,"deselect",newObject[]{sx,ex});
59-
returnthis;
60-
}
61-
62-
publicArray1DTracerchart(ChartTracerchartTracer) {
63-
addTrace(key,"chart",newObject[]{chartTracer.key});
64-
returnthis;
36+
publicvoidchart(ChartTracerchartTracer) {
37+
command("chart",newObject[]{chartTracer});
6538
}
6639
}
Lines changed: 24 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,51 @@
11
packageorg.algorithm_visualizer;
22

33
publicclassArray2DTracerextendsTracer {
4-
publicArray2DTracer(Stringtitle) {
5-
super(title);
4+
publicvoidset(Objectarray2d) {
5+
command("set",newObject[]{array2d});
66
}
77

8-
publicArray2DTracer() {
9-
this(null);
8+
publicvoidpatch(intx,inty,Objectv) {
9+
command("patch",newObject[]{x,y,v});
1010
}
1111

12-
publicArray2DTracerset(Objectarray2d) {
13-
addTrace(key,"set",newObject[]{array2d});
14-
returnthis;
12+
publicvoidpatch(intx,inty) {
13+
command("patch",newObject[]{x,y});
1514
}
1615

17-
publicArray2DTracerset() {
18-
addTrace(key,"set",newObject[]{});
19-
returnthis;
16+
publicvoiddepatch(intx,inty) {
17+
command("depatch",newObject[]{x,y});
2018
}
2119

22-
publicArray2DTracerreset() {
23-
addTrace(key,"reset",newObject[]{});
24-
returnthis;
20+
publicvoidselect(intsx,intsy,intex,intey) {
21+
command("select",newObject[]{sx,sy,ex,ey});
2522
}
2623

27-
publicArray2DTracerdelay() {
28-
addTrace(key,"delay",newObject[]{});
29-
returnthis;
24+
publicvoidselect(intx,inty) {
25+
command("select",newObject[]{x,y});
3026
}
3127

32-
publicArray2DTracerpatch(intx,inty,Objectv) {
33-
addTrace(key,"patch",newObject[]{x,y,v});
34-
returnthis;
28+
publicvoidselectRow(intx,intsy,intey) {
29+
command("selectRow",newObject[]{x,sy,ey});
3530
}
3631

37-
publicArray2DTracerdepatch(intx,inty) {
38-
addTrace(key,"depatch",newObject[]{x,y});
39-
returnthis;
32+
publicvoidselectCol(inty,intsx,intex) {
33+
command("selectCol",newObject[]{y,sx,ex});
4034
}
4135

42-
publicArray2DTracerselect(intx,inty) {
43-
addTrace(key,"select",newObject[]{x,y});
44-
returnthis;
36+
publicvoiddeselect(intsx,intsy,intex,intey) {
37+
command("deselect",newObject[]{sx,sy,ex,ey});
4538
}
4639

47-
publicArray2DTracerselect(intsx,intsy,intex,intey) {
48-
addTrace(key,"select",newObject[]{sx,sy,ex,ey});
49-
returnthis;
40+
publicvoiddeselect(intx,inty) {
41+
command("deselect",newObject[]{x,y});
5042
}
5143

52-
publicArray2DTracerselectRow(intx,intsy,intey) {
53-
addTrace(key,"selectRow",newObject[]{x,sy,ey});
54-
returnthis;
44+
publicvoiddeselectRow(intx,intsy,intey) {
45+
command("deselectRow",newObject[]{x,sy,ey});
5546
}
5647

57-
publicArray2DTracerselectCol(inty,intsx,intex) {
58-
addTrace(key,"selectCol",newObject[]{y,sx,ex});
59-
returnthis;
60-
}
61-
62-
publicArray2DTracerdeselect(intx,inty) {
63-
addTrace(key,"deselect",newObject[]{x,y});
64-
returnthis;
65-
}
66-
67-
publicArray2DTracerdeselect(intsx,intsy,intex,intey) {
68-
addTrace(key,"deselect",newObject[]{sx,sy,ex,ey});
69-
returnthis;
70-
}
71-
72-
publicArray2DTracerdeselectRow(intx,intsy,intey) {
73-
addTrace(key,"deselectRow",newObject[]{x,sy,ey});
74-
returnthis;
75-
}
76-
77-
publicArray2DTracerdeselectCol(inty,intsx,intex) {
78-
addTrace(key,"deselectCol",newObject[]{y,sx,ex});
79-
returnthis;
48+
publicvoiddeselectCol(inty,intsx,intex) {
49+
command("deselectCol",newObject[]{y,sx,ex});
8050
}
8151
}
Lines changed: 1 addition & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,4 @@
11
packageorg.algorithm_visualizer;
22

3-
publicclassChartTracerextendsTracer {
4-
publicChartTracer(Stringtitle) {
5-
super(title);
6-
}
7-
8-
publicChartTracer() {
9-
this(null);
10-
}
11-
12-
publicChartTracerset(Objectarray1d) {
13-
addTrace(key,"set",newObject[]{array1d});
14-
returnthis;
15-
}
16-
17-
publicChartTracerset() {
18-
addTrace(key,"set",newObject[]{});
19-
returnthis;
20-
}
21-
22-
publicChartTracerreset() {
23-
addTrace(key,"reset",newObject[]{});
24-
returnthis;
25-
}
26-
27-
publicChartTracerdelay() {
28-
addTrace(key,"delay",newObject[]{});
29-
returnthis;
30-
}
31-
32-
publicChartTracerpatch(intx,Objectv) {
33-
addTrace(key,"patch",newObject[]{x,v});
34-
returnthis;
35-
}
36-
37-
publicChartTracerdepatch(intx) {
38-
addTrace(key,"depatch",newObject[]{x});
39-
returnthis;
40-
}
41-
42-
publicChartTracerselect(intx) {
43-
addTrace(key,"select",newObject[]{x});
44-
returnthis;
45-
}
46-
47-
publicChartTracerselect(intsx,intex) {
48-
addTrace(key,"select",newObject[]{sx,ex});
49-
returnthis;
50-
}
51-
52-
publicChartTracerdeselect(intx) {
53-
addTrace(key,"deselect",newObject[]{x});
54-
returnthis;
55-
}
56-
57-
publicChartTracerdeselect(intsx,intex) {
58-
addTrace(key,"deselect",newObject[]{sx,ex});
59-
returnthis;
60-
}
61-
62-
publicChartTracerchart(ChartTracerchartTracer) {
63-
addTrace(key,"chart",newObject[]{chartTracer.key});
64-
returnthis;
65-
}
3+
publicclassChartTracerextendsArray1DTracer {
664
}
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
packageorg.algorithm_visualizer;
2+
3+
importcom.google.gson.Gson;
4+
importcom.google.gson.GsonBuilder;
5+
importcom.google.gson.JsonPrimitive;
6+
importcom.google.gson.JsonSerializer;
7+
8+
importjava.awt.*;
9+
importjava.io.BufferedReader;
10+
importjava.io.DataOutputStream;
11+
importjava.io.FileWriter;
12+
importjava.io.InputStreamReader;
13+
importjava.io.PrintWriter;
14+
importjava.net.HttpURLConnection;
15+
importjava.net.URL;
16+
importjava.net.URLEncoder;
17+
importjava.util.ArrayList;
18+
19+
publicabstractclassCommander {
20+
privatestaticfinalintMAX_COMMANDS =1000000;
21+
privatestaticfinalintMAX_OBJECTS =100;
22+
23+
privatestaticclassCommand {
24+
privateStringkey;
25+
privateStringmethod;
26+
privateObject[]args;
27+
28+
Command(Stringkey,Stringmethod,Object[]args) {
29+
this.key =key;
30+
this.method =method;
31+
this.args =args;
32+
}
33+
}
34+
35+
privatestaticfinalGsongson;
36+
37+
privatestaticRandomize.StringkeyRandomizer =newRandomize.String(8,"abcdefghijklmnopqrstuvwxyz0123456789");
38+
privatestaticintobjectCount =0;
39+
privatestaticArrayList<Command>commands =newArrayList<>();
40+
41+
privatestaticvoidcommand(Stringkey,Stringmethod,Object[]args) {
42+
commands.add(newCommand(
43+
key,
44+
method,
45+
gson.fromJson(gson.toJson(args),Object[].class)
46+
));
47+
if (commands.size() >MAX_COMMANDS)
48+
thrownewError("Too Many Commands");
49+
if (objectCount >MAX_OBJECTS)
50+
thrownewError("Too Many Objects");
51+
}
52+
53+
publicstaticvoidsetRoot(Commanderchild) {
54+
command(null,"setRoot",newObject[]{child});
55+
}
56+
57+
publicstaticvoiddelay(intlineNumber) {
58+
command(null,"delay",newObject[]{lineNumber});
59+
}
60+
61+
publicstaticvoiddelay() {
62+
command(null,"delay",newObject[]{});
63+
}
64+
65+
privatefinalStringkey;
66+
67+
Commander(Object[]args) {
68+
objectCount++;
69+
StringclassName =this.getClass().getSimpleName();
70+
key =keyRandomizer.create();
71+
command(className,args);
72+
}
73+
74+
publicvoiddestroy() {
75+
objectCount--;
76+
command("destroy",newObject[]{});
77+
}
78+
79+
voidcommand(Stringmethod,Object[]args) {
80+
command(key,method,args);
81+
}
82+
83+
static {
84+
GsonBuildergsonBuilder =newGsonBuilder();
85+
JsonSerializer<Commander>serializer = (src,typeOfSrc,context) ->newJsonPrimitive(src.key);
86+
gsonBuilder.registerTypeAdapter(Commander.class,serializer);
87+
gson =gsonBuilder.create();
88+
89+
Runtime.getRuntime().addShutdownHook(newThread(() -> {
90+
try {
91+
Stringcontent =gson.toJson(commands);
92+
if (System.getenv("ALGORITHM_VISUALIZER") ==null) {
93+
URLpostUrl =newURL("https://algorithm-visualizer.org/api/visualizations");
94+
Stringparams ="content=" +URLEncoder.encode(content,"UTF-8");
95+
96+
HttpURLConnectionconn = (HttpURLConnection)postUrl.openConnection();
97+
conn.setRequestMethod("POST");
98+
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
99+
conn.setRequestProperty("Content-Length",Integer.toString(params.getBytes().length));
100+
conn.setDoOutput(true);
101+
102+
DataOutputStreamwriter =newDataOutputStream(conn.getOutputStream());
103+
writer.writeBytes(params);
104+
writer.close();
105+
106+
BufferedReaderreader =newBufferedReader(newInputStreamReader(conn.getInputStream()));
107+
URLopenUrl =newURL(reader.readLine());
108+
reader.close();
109+
110+
Desktop.getDesktop().browse(openUrl.toURI());
111+
}else {
112+
FileWriterfileWriter =newFileWriter("visualization.json");
113+
PrintWriterprintWriter =newPrintWriter(fileWriter);
114+
printWriter.print(content);
115+
printWriter.close();
116+
}
117+
}catch (Exceptione) {
118+
e.printStackTrace();
119+
}
120+
}));
121+
}
122+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp