1 package net.mograsim.logic.ui.serializing;
3 import java.io.IOException;
6 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
7 import net.mograsim.logic.ui.model.components.submodels.SubmodelComponent;
8 import net.mograsim.logic.ui.util.JsonHandler;
11 * This class contains all the information necessary to create a new {@link SubmodelComponent}
13 public class SubmodelComponentParams
15 public String type, name;
16 public double width, height;
17 public InterfacePinParams[] interfacePins;
18 public ComponentCompositionParams composition;
19 public Map<String, Object> specialized;
21 public static class InterfacePinParams
23 public Point location;
25 public int logicWidth;
28 public static class InnerWireParams
30 public InnerPinParams pin1, pin2;
34 public static class InnerPinParams
37 public String pinName;
40 public static class ComponentCompositionParams
42 public double innerScale;
43 public InnerComponentParams[] subComps;
44 public InnerWireParams[] innerWires;
46 public static class InnerComponentParams
50 public Map<String, Object> params;
54 public static SubmodelComponentParams readJson(String path) throws IOException
56 return JsonHandler.readJson(path, SubmodelComponentParams.class);
60 * Writes this {@link SubmodelComponentParams} object into a file in json format. The correct file extension is important! Check
61 * {@link SubmodelComponentParams}.fileExtension
63 public void writeJson(String path)
67 JsonHandler.writeJson(this, path);
71 System.err.println("Failed to write SubComponentParams to file");