Skip to content

Commit b08c9da

Browse files
committed
ext files, mcp processors added, package reorganisation.
1 parent 9bcafd4 commit b08c9da

File tree

15 files changed

+409
-37
lines changed

15 files changed

+409
-37
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ apply plugin: 'application'
77
apply plugin: 'idea'
88

99
group 'fr.flowarg'
10-
version '1.0.0'
10+
version '1.1.0'
1111
archivesBaseName = "FlowUpdaterJsonCreator"
1212

1313
compileJava {
1414
targetCompatibility = sourceCompatibility = JavaVersion.VERSION_1_8
1515
options.encoding = 'UTF-8'
1616
}
1717

18-
task sourcesJar(type: Jar, dependsOn: classes) {
18+
task sourcesJar(type: Jar) {
1919
classifier 'sources'
2020
from sourceSets.main.allSource
2121
}

src/main/java/fr/flowarg/flowupdaterjsoncreator/FlowUpdaterJsonCreator.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package fr.flowarg.flowupdaterjsoncreator;
22

33
import fr.flowarg.flowlogger.Logger;
4+
import fr.flowarg.flowupdaterjsoncreator.processors.ExternalFileProcessor;
5+
import fr.flowarg.flowupdaterjsoncreator.processors.IProcessor;
6+
import fr.flowarg.flowupdaterjsoncreator.processors.MCPProcessor;
7+
import fr.flowarg.flowupdaterjsoncreator.processors.ModProcessor;
48
import fr.flowarg.flowupdaterjsoncreator.ui.FxApplication;
59
import fr.flowarg.flowupdaterjsoncreator.ui.PanelManager;
610
import javafx.application.Application;
@@ -13,7 +17,9 @@ public class FlowUpdaterJsonCreator
1317
{
1418
private static FlowUpdaterJsonCreator instance;
1519
private final Logger logger;
16-
private final Processor processor;
20+
private final IProcessor modProcessor;
21+
private final IProcessor mcpProcessor;
22+
private final IProcessor externalFileProcessor;
1723
private PanelManager panelManager;
1824

1925
FlowUpdaterJsonCreator() throws IOException
@@ -24,7 +30,9 @@ public class FlowUpdaterJsonCreator
2430
logFile.delete();
2531
logFile.createNewFile();
2632
this.logger = new Logger("[JsonCreator]", logFile);
27-
this.processor = new Processor();
33+
this.modProcessor = new ModProcessor();
34+
this.mcpProcessor = new MCPProcessor();
35+
this.externalFileProcessor = new ExternalFileProcessor();
2836
this.logger.info("Starting json creator...");
2937
try
3038
{
@@ -58,9 +66,19 @@ public void setPanelManager(Stage stage)
5866
this.panelManager = new PanelManager(this, stage);
5967
}
6068

61-
public Processor getProcessor()
69+
public IProcessor getModProcessor()
6270
{
63-
return this.processor;
71+
return this.modProcessor;
72+
}
73+
74+
public IProcessor getMcpProcessor()
75+
{
76+
return this.mcpProcessor;
77+
}
78+
79+
public IProcessor getExternalFileProcessor()
80+
{
81+
return this.externalFileProcessor;
6482
}
6583

6684
public static FlowUpdaterJsonCreator getInstance()
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package fr.flowarg.flowupdaterjsoncreator.json;
2+
3+
public class ExternalFile
4+
{
5+
private final String path;
6+
private final String downloadURL;
7+
private final String sha1;
8+
9+
public ExternalFile(String path, String downloadURL, String sha1)
10+
{
11+
this.path = path;
12+
this.downloadURL = downloadURL;
13+
this.sha1 = sha1;
14+
}
15+
16+
public String getPath()
17+
{
18+
return this.path;
19+
}
20+
21+
public String getDownloadURL()
22+
{
23+
return this.downloadURL;
24+
}
25+
26+
public String getSha1()
27+
{
28+
return this.sha1;
29+
}
30+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package fr.flowarg.flowupdaterjsoncreator.json;
2+
3+
public class MCP
4+
{
5+
private final String clientDownloadURL;
6+
private final String clientSha1;
7+
private final int clientSize;
8+
9+
private final String serverDownloadURL;
10+
private final String serverSha1;
11+
private final int serverSize;
12+
13+
public MCP(String clientDownloadURL, String clientSha1, int clientSize, String serverDownloadURL, String serverSha1, int serverSize)
14+
{
15+
this.clientDownloadURL = clientDownloadURL;
16+
this.clientSha1 = clientSha1;
17+
this.clientSize = clientSize;
18+
this.serverDownloadURL = serverDownloadURL;
19+
this.serverSha1 = serverSha1;
20+
this.serverSize = serverSize;
21+
}
22+
23+
public String getClientDownloadURL()
24+
{
25+
return this.clientDownloadURL;
26+
}
27+
28+
public String getClientSha1()
29+
{
30+
return this.clientSha1;
31+
}
32+
33+
public int getClientSize()
34+
{
35+
return this.clientSize;
36+
}
37+
38+
public String getServerDownloadURL()
39+
{
40+
return this.serverDownloadURL;
41+
}
42+
43+
public String getServerSha1()
44+
{
45+
return this.serverSha1;
46+
}
47+
48+
public int getServerSize()
49+
{
50+
return this.serverSize;
51+
}
52+
}

src/main/java/fr/flowarg/flowupdaterjsoncreator/Mod.java renamed to src/main/java/fr/flowarg/flowupdaterjsoncreator/json/Mod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package fr.flowarg.flowupdaterjsoncreator;
1+
package fr.flowarg.flowupdaterjsoncreator.json;
22

33
public class Mod
44
{
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package fr.flowarg.flowupdaterjsoncreator.processors;
2+
3+
import com.google.gson.Gson;
4+
import com.google.gson.GsonBuilder;
5+
import com.google.gson.JsonArray;
6+
import com.google.gson.JsonObject;
7+
import fr.flowarg.flowio.FileUtils;
8+
import fr.flowarg.flowupdaterjsoncreator.json.ExternalFile;
9+
10+
import java.io.BufferedWriter;
11+
import java.io.File;
12+
import java.io.FileWriter;
13+
import java.io.IOException;
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
17+
public class ExternalFileProcessor implements IProcessor
18+
{
19+
private final List<ExternalFile> externalFiles = new ArrayList<>();
20+
private String finalJson;
21+
22+
@Override
23+
public void process(File dir, Object... args)
24+
{
25+
this.externalFiles.clear();
26+
if(dir.listFiles() != null)
27+
for (File mod : dir.listFiles())
28+
if(!mod.isDirectory())
29+
this.externalFiles.add(new ExternalFile(mod.getName(), "", FileUtils.getSHA1(mod)));
30+
else
31+
{
32+
for (File sub : this.getSubFiles(mod))
33+
this.externalFiles.add(new ExternalFile(sub.getAbsolutePath().replace(dir.getAbsolutePath(), ""), "", FileUtils.getSHA1(sub)));
34+
}
35+
}
36+
37+
private List<File> getSubFiles(File fi)
38+
{
39+
final List<File> files = new ArrayList<>();
40+
41+
for(File file : fi.listFiles())
42+
{
43+
if(file.isDirectory())
44+
files.addAll(this.getSubFiles(file));
45+
else files.add(file);
46+
}
47+
48+
return files;
49+
}
50+
51+
@Override
52+
public void generate(Object... args)
53+
{
54+
final JsonObject object = new JsonObject();
55+
final JsonArray extFilesArray = new JsonArray(this.externalFiles.size());
56+
final Gson gson = new GsonBuilder().setPrettyPrinting().create();
57+
this.externalFiles.forEach(mod -> {
58+
final JsonObject extFileObject = new JsonObject();
59+
extFileObject.addProperty("path", mod.getPath());
60+
extFileObject.addProperty("downloadURL", mod.getDownloadURL());
61+
extFileObject.addProperty("sha1", mod.getSha1());
62+
extFilesArray.add(extFileObject);
63+
});
64+
object.add("extfiles", extFilesArray);
65+
66+
this.finalJson = gson.toJson(object);
67+
}
68+
69+
@Override
70+
public void save(File file, Object... args)
71+
{
72+
try
73+
{
74+
final BufferedWriter writer = new BufferedWriter(new FileWriter(file));
75+
writer.write(this.finalJson);
76+
writer.flush();
77+
writer.close();
78+
} catch (IOException e)
79+
{
80+
e.printStackTrace();
81+
}
82+
}
83+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package fr.flowarg.flowupdaterjsoncreator.processors;
2+
3+
import java.io.File;
4+
5+
public interface IProcessor
6+
{
7+
void process(File dir, Object... args);
8+
void generate(Object... args);
9+
void save(File file, Object... args);
10+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package fr.flowarg.flowupdaterjsoncreator.processors;
2+
3+
import com.google.gson.Gson;
4+
import com.google.gson.GsonBuilder;
5+
import com.google.gson.JsonObject;
6+
import fr.flowarg.flowio.FileUtils;
7+
import fr.flowarg.flowupdaterjsoncreator.json.MCP;
8+
9+
import java.io.BufferedWriter;
10+
import java.io.File;
11+
import java.io.FileWriter;
12+
import java.io.IOException;
13+
14+
public class MCPProcessor implements IProcessor
15+
{
16+
private MCP mcp;
17+
private String finalJson;
18+
19+
@Override
20+
public void process(File dir, Object... args)
21+
{
22+
final File client = new File(dir, "client.jar");
23+
final boolean clientExist = client.exists();
24+
final File server = new File(dir, "server.jar");
25+
final boolean serverExist = server.exists();
26+
27+
this.mcp = new MCP("", clientExist ? FileUtils.getSHA1(client) : "", clientExist ? (int)FileUtils.getFileSizeBytes(client) : -1,
28+
"", serverExist ? FileUtils.getSHA1(server) : "", serverExist ? (int)FileUtils.getFileSizeBytes(server) : -1);
29+
}
30+
31+
@Override
32+
public void generate(Object... args)
33+
{
34+
final JsonObject object = new JsonObject();
35+
object.addProperty("clientDownloadURL", this.mcp.getClientDownloadURL());
36+
object.addProperty("clientSha1", this.mcp.getClientSha1());
37+
object.addProperty("clientSize", this.mcp.getClientSize());
38+
object.addProperty("serverDownloadURL", this.mcp.getServerDownloadURL());
39+
object.addProperty("serverSha1", this.mcp.getServerSha1());
40+
object.addProperty("serverSize", this.mcp.getServerSize());
41+
final Gson gson = new GsonBuilder().setPrettyPrinting().create();
42+
this.finalJson = gson.toJson(object);
43+
}
44+
45+
@Override
46+
public void save(File file, Object... args)
47+
{
48+
try
49+
{
50+
final BufferedWriter writer = new BufferedWriter(new FileWriter(file));
51+
writer.write(this.finalJson);
52+
writer.flush();
53+
writer.close();
54+
} catch (IOException e)
55+
{
56+
e.printStackTrace();
57+
}
58+
}
59+
}

src/main/java/fr/flowarg/flowupdaterjsoncreator/Processor.java renamed to src/main/java/fr/flowarg/flowupdaterjsoncreator/processors/ModProcessor.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
package fr.flowarg.flowupdaterjsoncreator;
1+
package fr.flowarg.flowupdaterjsoncreator.processors;
22

33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
55
import com.google.gson.JsonArray;
66
import com.google.gson.JsonObject;
77
import fr.flowarg.flowio.FileUtils;
8+
import fr.flowarg.flowupdaterjsoncreator.json.Mod;
89

910
import java.io.BufferedWriter;
1011
import java.io.File;
@@ -13,28 +14,25 @@
1314
import java.util.ArrayList;
1415
import java.util.List;
1516

16-
public class Processor
17+
public class ModProcessor implements IProcessor
1718
{
18-
private final List<File> modsFile = new ArrayList<>();
1919
private final List<Mod> mods = new ArrayList<>();
2020
private String finalJson;
2121

22-
public void listFiles(File dir)
22+
@Override
23+
public void process(File dir, Object... args)
2324
{
24-
this.modsFile.clear();
25+
this.mods.clear();
2526
if(dir.listFiles() != null)
2627
for (File mod : dir.listFiles())
2728
if(!mod.isDirectory())
28-
modsFile.add(mod);
29-
}
30-
31-
public void processMods()
32-
{
33-
this.mods.clear();
34-
this.modsFile.forEach(file -> mods.add(new Mod(file.getName(), "", FileUtils.getSHA1(file), (int)FileUtils.getFileSizeBytes(file))));
29+
{
30+
mods.add(new Mod(mod.getName(), "", FileUtils.getSHA1(mod), (int)FileUtils.getFileSizeBytes(mod)));
31+
}
3532
}
3633

37-
public void generateJson()
34+
@Override
35+
public void generate(Object... args)
3836
{
3937
final JsonObject object = new JsonObject();
4038
final JsonArray modArray = new JsonArray(this.mods.size());
@@ -52,11 +50,12 @@ public void generateJson()
5250
this.finalJson = gson.toJson(object);
5351
}
5452

55-
public void saveJson(File jsonFile)
53+
@Override
54+
public void save(File file, Object... args)
5655
{
5756
try
5857
{
59-
final BufferedWriter writer = new BufferedWriter(new FileWriter(jsonFile));
58+
final BufferedWriter writer = new BufferedWriter(new FileWriter(file));
6059
writer.write(this.finalJson);
6160
writer.flush();
6261
writer.close();

src/main/java/fr/flowarg/flowupdaterjsoncreator/ui/FxApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ public void start(Stage stage)
1313
final FlowUpdaterJsonCreator jsonCreator = FlowUpdaterJsonCreator.getInstance();
1414
jsonCreator.setPanelManager(stage);
1515
jsonCreator.getPanelManager().init();
16-
jsonCreator.getPanelManager().showPanel(Panels.SELECT_MODS_DIR_PANEL);
16+
jsonCreator.getPanelManager().showPanel(Panels.CHOOSE_JSON_TYPE_PANEL);
1717
}
1818
}

0 commit comments

Comments
 (0)